mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-02 10:34:27 +03:00
feat(plugins): send accept header in webServer url checking (#16251)
This commit is contained in:
parent
d0030a7434
commit
3e67a7c836
@ -158,10 +158,12 @@ async function isURLAvailable(url: URL, ignoreHTTPSErrors: boolean, onStdErr: Re
|
||||
}
|
||||
|
||||
async function httpStatusCode(url: URL, ignoreHTTPSErrors: boolean, onStdErr: Reporter['onStdErr']): Promise<number> {
|
||||
const commonRequestOptions = { headers: { Accept: '*/*' } };
|
||||
const isHttps = url.protocol === 'https:';
|
||||
const requestOptions = isHttps ? {
|
||||
...commonRequestOptions,
|
||||
rejectUnauthorized: !ignoreHTTPSErrors,
|
||||
} : {};
|
||||
} : commonRequestOptions;
|
||||
return new Promise(resolve => {
|
||||
debugWebServer(`HTTP GET: ${url}`);
|
||||
(isHttps ? https : http).get(url, requestOptions, res => {
|
||||
|
@ -312,7 +312,7 @@ test('should be able to specify a custom baseURL with the server', async ({ runI
|
||||
await new Promise(resolve => server.close(resolve));
|
||||
});
|
||||
|
||||
test('should be able to use an existing server when reuseExistingServer:true ', async ({ runInlineTest }, { workerIndex }) => {
|
||||
test('should be able to use an existing server when reuseExistingServer:true', async ({ runInlineTest }, { workerIndex }) => {
|
||||
const port = workerIndex + 10500;
|
||||
const server = http.createServer((req: http.IncomingMessage, res: http.ServerResponse) => {
|
||||
res.end('<html><body>hello</body></html>');
|
||||
@ -345,7 +345,7 @@ test('should be able to use an existing server when reuseExistingServer:true ',
|
||||
await new Promise(resolve => server.close(resolve));
|
||||
});
|
||||
|
||||
test('should throw when a server is already running on the given port and strict is true ', async ({ runInlineTest }, { workerIndex }) => {
|
||||
test('should throw when a server is already running on the given port and strict is true', async ({ runInlineTest }, { workerIndex }) => {
|
||||
const port = workerIndex + 10500;
|
||||
const server = http.createServer((req: http.IncomingMessage, res: http.ServerResponse) => {
|
||||
res.end('<html><body>hello</body></html>');
|
||||
@ -410,7 +410,7 @@ for (const host of ['localhost', '127.0.0.1', '0.0.0.0']) {
|
||||
});
|
||||
}
|
||||
|
||||
test(`should suport self signed certificate`, async ({ runInlineTest, httpsServer }) => {
|
||||
test(`should support self signed certificate`, async ({ runInlineTest, httpsServer }) => {
|
||||
const result = await runInlineTest({
|
||||
'test.spec.js': `
|
||||
const { test } = pwt;
|
||||
@ -429,6 +429,34 @@ test(`should suport self signed certificate`, async ({ runInlineTest, httpsServe
|
||||
expect(result.exitCode).toBe(0);
|
||||
});
|
||||
|
||||
test('should send Accept header', async ({ runInlineTest, server }) => {
|
||||
let acceptHeader: string | undefined | null = null;
|
||||
server.setRoute('/hello', (req, res) => {
|
||||
if (acceptHeader === null) acceptHeader = req.headers.accept;
|
||||
res.end('<html><body>hello</body></html>');
|
||||
});
|
||||
const result = await runInlineTest({
|
||||
'test.spec.ts': `
|
||||
const { test } = pwt;
|
||||
test('connect to the server', async ({baseURL, page}) => {
|
||||
await page.goto('http://localhost:${server.PORT}/hello');
|
||||
expect(await page.textContent('body')).toBe('hello');
|
||||
});
|
||||
`,
|
||||
'playwright.config.ts': `
|
||||
module.exports = {
|
||||
webServer: {
|
||||
command: 'node ${JSON.stringify(SIMPLE_SERVER_PATH)} ${server.PORT}',
|
||||
url: 'http://localhost:${server.PORT}/hello',
|
||||
reuseExistingServer: true,
|
||||
}
|
||||
};
|
||||
`,
|
||||
});
|
||||
expect(result.exitCode).toBe(0);
|
||||
expect(acceptHeader).toBe('*/*');
|
||||
});
|
||||
|
||||
test('should create multiple servers', async ({ runInlineTest }, { workerIndex }) => {
|
||||
const port = workerIndex + 10500;
|
||||
const result = await runInlineTest({
|
||||
|
Loading…
Reference in New Issue
Block a user