chore: fix a racy time-based test (#20783)
This commit is contained in:
parent
190c121e66
commit
5112abc1d2
|
|
@ -517,10 +517,10 @@ const playwrightFixtures: Fixtures<TestFixtures, WorkerFixtures> = ({
|
||||||
|
|
||||||
_contextReuseMode: process.env.PW_TEST_REUSE_CONTEXT === 'when-possible' ? 'when-possible' : (process.env.PW_TEST_REUSE_CONTEXT ? 'force' : 'none'),
|
_contextReuseMode: process.env.PW_TEST_REUSE_CONTEXT === 'when-possible' ? 'when-possible' : (process.env.PW_TEST_REUSE_CONTEXT ? 'force' : 'none'),
|
||||||
|
|
||||||
_reuseContext: async ({ video, _contextReuseMode }, use, testInfo) => {
|
_reuseContext: [async ({ video, _contextReuseMode }, use, testInfo) => {
|
||||||
const reuse = _contextReuseMode === 'force' || (_contextReuseMode === 'when-possible' && !shouldCaptureVideo(normalizeVideoMode(video), testInfo));
|
const reuse = _contextReuseMode === 'force' || (_contextReuseMode === 'when-possible' && !shouldCaptureVideo(normalizeVideoMode(video), testInfo));
|
||||||
await use(reuse);
|
await use(reuse);
|
||||||
},
|
}, { scope: 'test', _title: 'context' } as any],
|
||||||
|
|
||||||
context: async ({ playwright, browser, _reuseContext, _contextFactory }, use, testInfo) => {
|
context: async ({ playwright, browser, _reuseContext, _contextFactory }, use, testInfo) => {
|
||||||
if (!_reuseContext) {
|
if (!_reuseContext) {
|
||||||
|
|
|
||||||
|
|
@ -75,16 +75,16 @@ test('should respect test.setTimeout outside of the test', async ({ runInlineTes
|
||||||
|
|
||||||
test.setTimeout(1000);
|
test.setTimeout(1000);
|
||||||
test('fails', async ({}) => {
|
test('fails', async ({}) => {
|
||||||
await new Promise(f => setTimeout(f, 1000));
|
await new Promise(f => setTimeout(f, 1100));
|
||||||
});
|
});
|
||||||
test('passes', async ({}) => {
|
test('passes', async ({}) => {
|
||||||
await new Promise(f => setTimeout(f, 100));
|
await new Promise(f => setTimeout(f, 100));
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe('suite', () => {
|
test.describe('suite', () => {
|
||||||
test.setTimeout(50);
|
test.setTimeout(500);
|
||||||
test('fails', async ({}) => {
|
test('fails', async ({}) => {
|
||||||
await new Promise(f => setTimeout(f, 100));
|
await new Promise(f => setTimeout(f, 600));
|
||||||
});
|
});
|
||||||
test('passes', async ({}) => {
|
test('passes', async ({}) => {
|
||||||
});
|
});
|
||||||
|
|
@ -95,6 +95,7 @@ test('should respect test.setTimeout outside of the test', async ({ runInlineTes
|
||||||
expect(result.failed).toBe(2);
|
expect(result.failed).toBe(2);
|
||||||
expect(result.passed).toBe(2);
|
expect(result.passed).toBe(2);
|
||||||
expect(result.output).toContain('Test timeout of 1000ms exceeded.');
|
expect(result.output).toContain('Test timeout of 1000ms exceeded.');
|
||||||
|
expect(result.output).toContain('Test timeout of 500ms exceeded.');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should timeout when calling test.setTimeout too late', async ({ runInlineTest }) => {
|
test('should timeout when calling test.setTimeout too late', async ({ runInlineTest }) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue