mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
feat(ui mode): text filter should filter by explicit tags (#29821)
Fixes #29815.
This commit is contained in:
parent
0feb05cf98
commit
abfd2c4e66
@ -965,8 +965,8 @@ function filterTree(rootItem: GroupItem, filterText: string, statusFilters: Map<
|
|||||||
const filtersStatuses = [...statusFilters.values()].some(Boolean);
|
const filtersStatuses = [...statusFilters.values()].some(Boolean);
|
||||||
|
|
||||||
const filter = (testCase: TestCaseItem) => {
|
const filter = (testCase: TestCaseItem) => {
|
||||||
const title = testCase.tests[0].titlePath().join(' ').toLowerCase();
|
const titleWithTags = [...testCase.tests[0].titlePath(), ...testCase.tests[0].tags].join(' ').toLowerCase();
|
||||||
if (!tokens.every(token => title.includes(token)) && !testCase.tests.some(t => runningTestIds?.has(t.id)))
|
if (!tokens.every(token => titleWithTags.includes(token)) && !testCase.tests.some(t => runningTestIds?.has(t.id)))
|
||||||
return false;
|
return false;
|
||||||
testCase.children = (testCase.children as TestItem[]).filter(test => {
|
testCase.children = (testCase.children as TestItem[]).filter(test => {
|
||||||
return !filtersStatuses || runningTestIds?.has(test.test.id) || statusFilters.get(test.status);
|
return !filtersStatuses || runningTestIds?.has(test.test.id) || statusFilters.get(test.status);
|
||||||
|
@ -24,7 +24,7 @@ const basicTestTree = {
|
|||||||
test('passes', () => {});
|
test('passes', () => {});
|
||||||
test('fails', () => { expect(1).toBe(2); });
|
test('fails', () => { expect(1).toBe(2); });
|
||||||
test.describe('suite', () => {
|
test.describe('suite', () => {
|
||||||
test('inner passes', () => {});
|
test('inner passes', { tag: '@smoke' }, () => {});
|
||||||
test('inner fails', () => { expect(1).toBe(2); });
|
test('inner fails', () => { expect(1).toBe(2); });
|
||||||
});
|
});
|
||||||
`,
|
`,
|
||||||
@ -46,6 +46,16 @@ test('should filter by title', async ({ runUITest }) => {
|
|||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should filter by explicit tags', async ({ runUITest }) => {
|
||||||
|
const { page } = await runUITest(basicTestTree);
|
||||||
|
await page.getByPlaceholder('Filter').fill('@smoke inner');
|
||||||
|
await expect.poll(dumpTestTree(page)).toBe(`
|
||||||
|
▼ ◯ a.test.ts
|
||||||
|
▼ ◯ suite
|
||||||
|
◯ inner passes
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
test('should filter by status', async ({ runUITest }) => {
|
test('should filter by status', async ({ runUITest }) => {
|
||||||
const { page } = await runUITest(basicTestTree);
|
const { page } = await runUITest(basicTestTree);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user