test: response interception after redirects (failing) (#7534)

This commit is contained in:
Yury Semikhatsky 2021-07-12 03:07:47 -07:00 committed by GitHub
parent 22bc9c0285
commit 869ef072e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -160,3 +160,42 @@ it('should be abortable after interception', async ({page, server, browserName})
expect(failed).toBe(true);
});
it('should fulfill after redirects', async ({page, server}) => {
it.fixme();
server.setRedirect('/redirect/1.html', '/redirect/2.html');
server.setRedirect('/redirect/2.html', '/empty.html');
const expectedUrls = ['/redirect/1.html', '/redirect/2.html', '/empty.html'].map(s => server.PREFIX + s);
const requestUrls = [];
const responseUrls = [];
const requestFinishedUrls = [];
page.on('request', request => requestUrls.push(request.url()));
page.on('response', response => responseUrls.push(response.url()));
page.on('requestfinished', request => requestFinishedUrls.push(request.url()));
await page.route('**/*', async route => {
// @ts-expect-error
await route._intercept({});
await route.fulfill({
status: 201,
headers: {
foo: 'bar'
},
contentType: 'text/plain',
body: 'Yo, page!'
});
});
const response = await page.goto(server.PREFIX + '/redirect/1.html');
expect(requestUrls).toEqual(expectedUrls);
expect(responseUrls).toEqual(expectedUrls);
await response.finished();
expect(requestFinishedUrls).toEqual(expectedUrls);
const redirectChain = [];
for (let req = response.request(); req; req = req.redirectedFrom())
redirectChain.unshift(req.url());
expect(redirectChain).toEqual(expectedUrls);
expect(response.status()).toBe(201);
expect(response.headers().foo).toBe('bar');
expect(response.headers()['content-type']).toBe('text/plain');
expect(await response.text()).toBe('Yo, page!');
});