cherry-pick+fix(#10678): test: add reporter test with grep (#10682)

This includes manual fix for the issue that was fixed in trunk
already, but cannot be cherry-picked.
This commit is contained in:
Dmitry Gozman 2021-12-02 13:52:13 -08:00 committed by GitHub
parent ab511165f3
commit 9fe65beb93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 1 deletions

View file

@ -106,7 +106,7 @@ export class ProjectImpl {
to._addTest(test);
if (!filter(test)) {
to._entries.pop();
to.suites.pop();
to.tests.pop();
}
}
}

View file

@ -405,6 +405,36 @@ test('should show nice stacks for locators', async ({ runInlineTest }) => {
]);
});
test('should report correct tests/suites when using grep', async ({ runInlineTest }) => {
const result = await runInlineTest({
'a.spec.js': `
const { test } = pwt;
test.describe('@foo', () => {
test('test1', async ({ }) => {
console.log('%%test1');
});
test('test2', async ({ }) => {
console.log('%%test2');
});
});
test('test3', async ({ }) => {
console.log('%%test3');
});
`,
}, { 'grep': '@foo' });
expect(result.exitCode).toBe(0);
expect(result.output).toContain('%%test1');
expect(result.output).toContain('%%test2');
expect(result.output).not.toContain('%%test3');
const fileSuite = result.report.suites[0];
expect(fileSuite.suites.length).toBe(1);
expect(fileSuite.suites[0].specs.length).toBe(2);
expect(fileSuite.specs.length).toBe(0);
});
function stripEscapedAscii(str: string) {
return str.replace(/\\u00[a-z0-9][a-z0-9]\[[^m]+m/g, '');
}