test(chromium): failing test for resolving responses after a navigation (#9651)

This commit is contained in:
Joel Einbinder 2021-10-21 11:29:04 -04:00 committed by GitHub
parent ba2576c5b9
commit deec8fd6c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,6 +15,7 @@
* limitations under the License.
*/
import type { ServerResponse } from '../../utils/testserver';
import { test as it, expect } from './pageTest';
it('Page.Events.Request', async ({ page, server }) => {
@ -114,3 +115,25 @@ it('should support redirects', async ({ page, server }) => {
expect(redirectedFrom.redirectedFrom()).toBe(null);
expect(redirectedFrom.redirectedTo()).toBe(response.request());
});
it('should resolve responses after a navigation', async ({ page, server, browserName }) => {
it.fixme(browserName === 'chromium');
const responseFromServerPromise = new Promise<ServerResponse>(resolve => {
server.setRoute('/foo', (message, response) => {
resolve(response);
});
});
await page.goto(server.EMPTY_PAGE);
const requestPromise = page.waitForRequest(() => true);
// start a long running request and wait until it hits the server
await page.evaluate(url => void fetch(url), server.PREFIX + '/foo');
const responseFromServer = await responseFromServerPromise;
const request = await requestPromise;
const responsePromise = request.response();
// navigate, which should cancel the request
await page.goto(server.CROSS_PROCESS_PREFIX);
// make sure we arent stalling this request on the server
responseFromServer.end('done');
// the response should resolve to null, because the page navigated.
expect(await responsePromise).toBe(null);
});