Как получить статус перенаправления у кукловода? - PullRequest
3 голосов
/ 15 апреля 2019

Я пытаюсь написать Jest test, используя puppeteer

describe('Downloads', () => {
    it(`should refirect to download page for ios`, async () => {
        await page.setUserAgent('exotic');
        let response = await page.goto(`http://localhost:8888/downloads`, {waitUntil: "networkidle0"});
        let url = page.url();
        expect(response.status()).toBe(303);
        expect(url).toBe(`http://localhost:8888/downloads/ios`);
    });
});

Но статус ответа 200, так как goto ответ на http://localhost:8888/downloads/ios

Как получить код состояния перенаправления?

1 Ответ

1 голос
/ 24 апреля 2019

Для этого вы можете использовать request.redirectChain(). Возвращает массив со всеми запросами. Затем вы можете получить доступ к первому запросу (и ответу) следующим образом:

const response = await page.goto('...');

const chain = response.request().redirectChain();
const redirectRequest = chain[0];
const redirectResponse = await redirectRequest.response();

expect(redirectResponse.status()).toBe(303);
expect(redirectResponse.url()).toBe('...');
...