playwright-fluent
Version:
Fluent API around playwright
71 lines (70 loc) • 2.49 kB
JavaScript
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();
});
});
;