UNPKG

playwright-fluent

Version:
71 lines (70 loc) 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const simple_fake_server_1 = require("simple-fake-server"); const SUT = tslib_1.__importStar(require("../../playwright-fluent")); const utils_1 = require("../../../utils"); describe('Playwright Fluent - recordNetworkActivity()', () => { let p; let fakeServer = undefined; beforeAll(() => { fakeServer = new simple_fake_server_1.FakeServer(1245); fakeServer.start(); //The FakeServer now listens on http://localhost:1245 }); afterAll(() => { if (fakeServer) { fakeServer.stop(); } }); beforeEach(() => { p = new SUT.PlaywrightFluent(); }); afterEach(async () => { await p.close(); }); test('should record network activity', async () => { // Given const url = `file:${path.join(__dirname, 'record-network-activity.test.html')}`; const harFilepath = `${path.join(__dirname, (0, utils_1.uniqueFilename)({ prefix: 'har-', extension: '.json' }))}`; const responseBody = { prop1: 'foobar', }; const responseBodyBaz = { prop1: 'foobaz', }; const responseHeaders = { 'foo-header': 'bar', }; fakeServer && // prettier-ignore fakeServer.http .get() .to('/foobar') .willReturn(responseBody, 200, responseHeaders); fakeServer && // prettier-ignore fakeServer.http .get() .to('/yo') .willReturn(responseBodyBaz, 200, responseHeaders); // When await p .withBrowser('chromium') .withOptions({ headless: true }) .withCursor() .recordNetworkActivity({ path: harFilepath }) .recordRequestsTo('/foobar') .recordRequestsTo('/yo') .navigateTo(url) .wait(3000) .close(); // Then HAR can be read const har = p.getRecordedNetworkActivity(); expect(har).toBeDefined(); expect(har.log.entries.length).toBe(4); expect(har.log.entries.find((entry) => entry.request.url.includes('/foobar'))).toBeDefined(); expect(har.log.entries.find((entry) => entry.request.url.includes('/yo'))).toBeDefined(); }); });