Skip to content

Commit

Permalink
test: cleanup page.waitForRequest/page.waitForResponse tests (#2880)
Browse files Browse the repository at this point in the history
This patch removes unnecessary regexp tests and unifies all tests
between each other.
  • Loading branch information
aslushnikov committed Jul 12, 2018
1 parent 726c8dc commit 66fa0d3
Showing 1 changed file with 42 additions and 47 deletions.
89 changes: 42 additions & 47 deletions test/page.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -790,82 +790,77 @@ module.exports.addTests = function({testRunner, expect, puppeteer, DeviceDescrip
it('should work', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [request] = await Promise.all([
page.waitForRequest(server.PREFIX + '/404'),
page.evaluate(() => fetch('/404', {method: 'GET'}))
page.waitForRequest(server.PREFIX + '/digits/2.png'),
page.evaluate(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
})
]);
expect(request.method()).toBe('GET');
expect(request.url()).toBe(server.PREFIX + '/404');
});
it('should work with regex pattern', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [request] = await Promise.all([
page.waitForRequest(request => new RegExp(`${server.PREFIX}/(200|404)`).test(request.url())),
page.evaluate(() => fetch('/404', {method: 'GET'}))
]);
expect(request.method()).toBe('GET');
expect(request.url()).toBe(server.PREFIX + '/404');
expect(request.url()).toBe(server.PREFIX + '/digits/2.png');
});
it('should work with predicate', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [request] = await Promise.all([
page.waitForRequest(request => request.url() === server.PREFIX + '/404' && request.method() === 'PATCH'),
page.evaluate(() => fetch('/404', {method: 'PATCH'}))
page.waitForRequest(request => request.url() === server.PREFIX + '/digits/2.png'),
page.evaluate(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
})
]);
expect(request.method()).toBe('PATCH');
expect(request.url()).toBe(server.PREFIX + '/404');
expect(request.url()).toBe(server.PREFIX + '/digits/2.png');
});
it('should work with no timeout', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [request] = await Promise.all([
page.waitForRequest(server.PREFIX + '/404', { timeout: 0}),
page.waitFor(50),
page.evaluate(() => fetch('/404', {method: 'GET'}))
page.waitForRequest(server.PREFIX + '/digits/2.png', {timeout: 0}),
page.evaluate(() => setTimeout(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
}, 50))
]);
expect(request.method()).toBe('GET');
expect(request.url()).toBe(server.PREFIX + '/404');
expect(request.url()).toBe(server.PREFIX + '/digits/2.png');
});
});

describe('Page.waitForResponse', function() {
it('should work', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [response] = await Promise.all([
page.waitForResponse(server.PREFIX + '/grid.html'),
page.waitFor(100),
page.evaluate(() => fetch('/grid.html', {method: 'GET'}))
]);
expect(response.ok()).toBe(true);
expect(response.url()).toBe(server.PREFIX + '/grid.html');
});
it('should work with regex', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [response] = await Promise.all([
page.waitForResponse(response => new RegExp(`${server.PREFIX}/(get|grid.html)`).test(response.url())),
page.waitFor(100),
page.evaluate(() => fetch('/grid.html', {method: 'GET'}))
page.waitForResponse(server.PREFIX + '/digits/2.png'),
page.evaluate(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
})
]);
expect(response.ok()).toBe(true);
expect(response.url()).toBe(server.PREFIX + '/grid.html');
expect(response.url()).toBe(server.PREFIX + '/digits/2.png');
});
it('should work with predicate', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [response] = await Promise.all([
page.waitForResponse(response => response.url() === server.PREFIX + '/grid.html' && response.status() === 200),
page.waitFor(100),
page.evaluate(() => fetch('/grid.html', {method: 'PATCH'}))
page.waitForResponse(response => response.url() === server.PREFIX + '/digits/2.png'),
page.evaluate(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
})
]);
expect(response.ok()).toBe(true);
expect(response.url()).toBe(server.PREFIX + '/grid.html');
expect(response.url()).toBe(server.PREFIX + '/digits/2.png');
});
it('should work with no timeout', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
const [response] = await Promise.all([
page.waitForResponse(server.PREFIX + '/grid.html', { timeout: 0}),
page.waitFor(50),
page.evaluate(() => fetch('/grid.html', {method: 'GET'}))
page.waitForResponse(server.PREFIX + '/digits/2.png', {timeout: 0}),
page.evaluate(() => setTimeout(() => {
fetch('/digits/1.png');
fetch('/digits/2.png');
fetch('/digits/3.png');
}, 50))
]);
expect(response.ok()).toBe(true);
expect(response.url()).toBe(server.PREFIX + '/grid.html');
expect(response.url()).toBe(server.PREFIX + '/digits/2.png');
});
});

Expand Down

0 comments on commit 66fa0d3

Please sign in to comment.