mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: inherit apiRequestContext timeout from actionTimeout (#23481)
Fixes https://github.com/microsoft/playwright/issues/23344
This commit is contained in:
parent
b21c81d344
commit
af893a1019
@ -260,6 +260,7 @@ const playwrightFixtures: Fixtures<TestFixtures, WorkerFixtures> = ({
|
||||
}
|
||||
(playwright.request as any)._defaultContextOptions = { ..._combinedContextOptions };
|
||||
(playwright.request as any)._defaultContextOptions.tracesDir = path.join(_artifactsDir(), 'traces');
|
||||
(playwright.request as any)._defaultContextOptions.timeout = actionTimeout || 0;
|
||||
await use();
|
||||
(playwright.request as any)._defaultContextOptions = undefined;
|
||||
for (const browserType of [playwright.chromium, playwright.firefox, playwright.webkit]) {
|
||||
|
||||
@ -767,3 +767,58 @@ test('fulfill with return path of the entry', async ({ runInlineTest }) => {
|
||||
expect(result.exitCode).toBe(0);
|
||||
expect(result.passed).toBe(1);
|
||||
});
|
||||
|
||||
test('should use actionTimeout for APIRequestContext', async ({ runInlineTest, server }) => {
|
||||
server.setRoute('/stall', (req, res) => {});
|
||||
const result = await runInlineTest({
|
||||
'playwright.config.js': `
|
||||
module.exports = {
|
||||
use: {
|
||||
actionTimeout: 1111,
|
||||
baseURL: '${server.PREFIX}',
|
||||
}
|
||||
};
|
||||
`,
|
||||
'a.test.ts': `
|
||||
import { test, expect } from '@playwright/test';
|
||||
test('default APIRequestContext fixture', async ({ request }) => {
|
||||
await expect(request.get('/stall')).rejects.toThrow('apiRequestContext.get: Request timed out after 1111ms');
|
||||
});
|
||||
test('newly created APIRequestContext without options', async ({ playwright }) => {
|
||||
const apiRequestContext = await playwright.request.newContext();
|
||||
await expect(apiRequestContext.get('/stall')).rejects.toThrow('apiRequestContext.get: Request timed out after 1111ms');
|
||||
});
|
||||
test('newly created APIRequestContext with options', async ({ playwright }) => {
|
||||
const apiRequestContextWithOptions = await playwright.request.newContext({ httpCredentials: { username: 'user', password: 'pass' } });
|
||||
await expect(apiRequestContextWithOptions.get('/stall')).rejects.toThrow('apiRequestContext.get: Request timed out after 1111ms');
|
||||
});
|
||||
`,
|
||||
}, { workers: 1 });
|
||||
expect(result.exitCode).toBe(0);
|
||||
expect(result.passed).toBe(3);
|
||||
});
|
||||
|
||||
test('should cancel apiRequests if test will timeout', async ({ runInlineTest, server }) => {
|
||||
server.setRoute('/stall', (req, res) => {});
|
||||
const result = await runInlineTest({
|
||||
'playwright.config.js': `
|
||||
module.exports = {
|
||||
timeout: 1000,
|
||||
use: {
|
||||
baseURL: '${server.PREFIX}',
|
||||
}
|
||||
};
|
||||
`,
|
||||
'a.test.ts': `
|
||||
import { test, expect } from '@playwright/test';
|
||||
test('pass', async ({ request }) => {
|
||||
await request.get('/stall')
|
||||
});
|
||||
`,
|
||||
}, { workers: 1 });
|
||||
expect(result.exitCode).toBe(1);
|
||||
expect(result.passed).toBe(0);
|
||||
expect(result.failed).toBe(1);
|
||||
expect(result.output).toContain('apiRequestContext.get: Request context disposed.');
|
||||
expect(result.output).toContain('Test timeout of 1000ms exceeded.');
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user