fix reporter-json.spec.ts due to sharding

This commit is contained in:
Mathias Leppich 2024-05-22 19:43:59 +02:00
parent 6543baf62f
commit 59c625e56a

View file

@ -14,9 +14,9 @@
* limitations under the License.
*/
import * as path from 'path';
import * as fs from 'fs';
import { test, expect, stripAnsi } from './playwright-test-fixtures';
import * as path from 'path';
import { expect, stripAnsi, test } from './playwright-test-fixtures';
test('should support spec.ok and stats', async ({ runInlineTest }) => {
const result = await runInlineTest({
@ -31,7 +31,7 @@ test('should support spec.ok and stats', async ({ runInlineTest }) => {
test.skip('math skipped', async ({}) => {
});
`
}, { });
}, {});
expect(result.exitCode).toBe(1);
expect(result.report.suites[0].specs[0].ok).toBe(true);
expect(result.report.suites[0].specs[1].ok).toBe(false);
@ -43,7 +43,7 @@ test('should support spec.ok and stats', async ({ runInlineTest }) => {
});
test('should not report skipped due to sharding', async ({ runInlineTest }) => {
const result = await runInlineTest({
const tests = {
'a.test.js': `
import { test, expect } from '@playwright/test';
test('one', async () => {
@ -62,12 +62,29 @@ test('should not report skipped due to sharding', async ({ runInlineTest }) => {
test('five', async () => {
});
`,
}, { shard: '1/3', reporter: 'json' });
expect(result.exitCode).toBe(0);
expect(result.report.suites.length).toBe(1);
expect(result.report.suites[0].specs.length).toBe(2);
expect(result.report.suites[0].specs[0].tests[0].status).toBe('expected');
expect(result.report.suites[0].specs[1].tests[0].status).toBe('skipped');
};
{
const result = await runInlineTest(tests, { shard: '1/3', reporter: 'json' });
expect(result.exitCode).toBe(0);
expect(result.report.suites.length).toBe(1);
expect(result.report.suites[0].specs.length).toBe(3);
expect(result.report.suites[0].specs[0].tests[0].status).toBe('expected');
expect(result.report.suites[0].specs[1].tests[0].status).toBe('skipped');
expect(result.report.suites[0].specs[2].tests[0].status).toBe('expected');
}
{
const result = await runInlineTest(tests, { shard: '2/3', reporter: 'json' });
expect(result.exitCode).toBe(0);
expect(result.report.suites.length).toBe(1);
expect(result.report.suites[0].specs.length).toBe(2);
expect(result.report.suites[0].specs[0].tests[0].status).toBe('expected');
expect(result.report.suites[0].specs[1].tests[0].status).toBe('skipped');
}
{
const result = await runInlineTest(tests, { shard: '3/3', reporter: 'json' });
expect(result.exitCode).toBe(0);
expect(result.report.suites.length).toBe(0);
}
});
test('should report projects and stats', async ({ runInlineTest }, testInfo) => {
@ -95,7 +112,7 @@ test('should report projects and stats', async ({ runInlineTest }, testInfo) =>
expect(1 + 1).toBe(2);
});
`
}, { });
}, {});
expect(result.exitCode).toBe(0);
const projects = result.report.config.projects;
const testDir = testInfo.outputDir.split(path.sep).join(path.posix.sep);
@ -245,7 +262,7 @@ test('should have starting time in results', async ({ runInlineTest }, testInfo)
expect(1 + 1).toBe(2);
});
`
}, { reporter: 'json' });
}, { reporter: 'json' });
expect(result.exitCode).toBe(0);
const startTime = result.report.suites[0].specs[0].tests[0].results[0].startTime;
expect(new Date(startTime).getTime()).toBeGreaterThan(new Date('1/1/2000').getTime());