fix(fetch): fallback to given URL if baseURL is invalid (#32911)

This commit is contained in:
Max Schmitt 2024-10-01 22:43:32 +02:00 committed by GitHub
parent c84305ed73
commit daac0ddd24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View file

@ -25,7 +25,7 @@ import zlib from 'zlib';
import type { HTTPCredentials } from '../../types/types';
import { TimeoutSettings } from '../common/timeoutSettings';
import { getUserAgent } from '../utils/userAgent';
import { assert, createGuid, monotonicTime } from '../utils';
import { assert, constructURLBasedOnBaseURL, createGuid, monotonicTime } from '../utils';
import { HttpsProxyAgent, SocksProxyAgent } from '../utilsBundle';
import { BrowserContext, verifyClientCertificates } from './browserContext';
import { CookieStore, domainMatches, parseRawCookie } from './cookieStore';
@ -159,7 +159,7 @@ export abstract class APIRequestContext extends SdkObject {
setHeader(headers, name, value);
}
const requestUrl = new URL(params.url, defaults.baseURL);
const requestUrl = new URL(constructURLBasedOnBaseURL(defaults.baseURL, params.url));
if (params.encodedParams) {
requestUrl.search = params.encodedParams;
} else if (params.params) {

View file

@ -220,6 +220,13 @@ it('should resolve url relative to global baseURL option', async ({ playwright,
await request.dispose();
});
it('should fallback to given URL if baseURL is bogus', async ({ playwright, server }) => {
const request = await playwright.request.newContext({ baseURL: 'bogus' });
const response = await request.get(server.PREFIX + '/empty.html');
expect(response.url()).toBe(server.EMPTY_PAGE);
await request.dispose();
});
it('should set playwright as user-agent', async ({ playwright, server, isWindows, isLinux, isMac }) => {
const request = await playwright.request.newContext();
const [serverRequest] = await Promise.all([