playwright-fluent
Version:
Fluent API around playwright
56 lines (55 loc) • 2.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const path = tslib_1.__importStar(require("path"));
const playwright_1 = require("playwright");
const simple_fake_server_1 = require("simple-fake-server");
const SUT = tslib_1.__importStar(require("../index"));
const utils_1 = require("../../../../utils");
describe('record failed requests', () => {
let browser = undefined;
let fakeServer = undefined;
beforeAll(() => {
fakeServer = new simple_fake_server_1.FakeServer(1237);
fakeServer.start();
//The FakeServer now listens on http://localhost:1237
});
afterAll(() => {
if (fakeServer) {
fakeServer.stop();
}
});
// eslint-disable-next-line @typescript-eslint/no-empty-function
beforeEach(() => { });
afterEach(async () => {
if (browser) {
await browser.close();
}
});
test('should record HTP 500 requests', async () => {
// Given
browser = await playwright_1.chromium.launch({ headless: true });
const context = await browser.newContext({ viewport: null });
const page = await context.newPage();
fakeServer &&
// prettier-ignore
fakeServer.http
.get()
.to('/500')
.willFail(500);
const requests = [];
const callback = (request) => requests.push(request);
// When
await SUT.recordFailedRequests(page, callback);
await page.goto(`file:${path.join(__dirname, 'record-failed-requests-500.test.html')}`);
await (0, utils_1.sleep)(3000);
// Then
expect(requests.length).toBe(1);
const stringifiedRequest = await (0, utils_1.stringifyRequest)(requests[0]);
const request = JSON.parse(stringifiedRequest);
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
expect(request.response.status).toBe(500);
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
expect(request.response.statusText).toBe('Internal Server Error');
});
});
;