UNPKG

@authless/puppeteer-extra-plugin-har

Version:

> This is a plugin for [puppeteer-extra](https://github.com/berstend/puppeteer-extra) that allows you to create a HAR file from your page.

89 lines 4.82 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const src_1 = __importDefault(require("../src")); const puppeteer_extra_1 = require("puppeteer-extra"); const puppeteer_1 = __importDefault(require("puppeteer")); const puppeteer = puppeteer_extra_1.addExtra(puppeteer_1.default); describe('puppeteer-extra-plugin-har', () => { describe('single page', () => { test('it creates HAR file correctly [Page Closed]', () => __awaiter(void 0, void 0, void 0, function* () { /* eslint-disable-next-line no-empty-function */ const callback = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () { })); puppeteer.use(src_1.default({ callback })); const browser = yield puppeteer.launch({ headless: true }); const page = yield browser.newPage(); yield page.goto('http://example.com', { waitUntil: 'domcontentloaded' }); yield page.close(); yield browser.close(); expect(callback.mock.calls.length).toBe(1); })); test('it creates HAR file correctly [Browser Closed]', () => __awaiter(void 0, void 0, void 0, function* () { /* eslint-disable-next-line no-empty-function */ const callback = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () { })); puppeteer.use(src_1.default({ callback })); const browser = yield puppeteer.launch({ headless: true }); const page = yield browser.newPage(); yield page.goto('http://example.com', { waitUntil: 'domcontentloaded' }); yield browser.close(); expect(callback.mock.calls.length).toBe(1); })); }); describe('multiple pages', () => { test('it creates HAR files with unique IDs', () => __awaiter(void 0, void 0, void 0, function* () { /* eslint-disable-next-line no-empty-function */ const callback = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () { })); puppeteer.use(src_1.default({ callback })); const browser = yield puppeteer.launch({ headless: true }); const urls = [ 'https://example.com', 'https://example.com', 'https://en.wikipedia.org/wiki/URL' ]; yield Promise.all(urls.map((url) => __awaiter(void 0, void 0, void 0, function* () { const page = yield browser.newPage(); yield page.goto(url, { waitUntil: 'domcontentloaded' }); yield page.close(); }))); yield browser.close(); const calls = callback.mock.calls; expect(calls.length).toBe(3); const harIds = calls.map((call) => call[1].harId); expect((new Set(harIds)).size).toBe(3); })); }); describe('multiple browsers', () => { test('it creates HAR files with unique IDs', () => __awaiter(void 0, void 0, void 0, function* () { /* eslint-disable-next-line no-empty-function */ const callback = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () { })); puppeteer.use(src_1.default({ callback })); const urls = [ 'https://example.com', 'https://example.com', ]; yield Promise.all(urls.map((url) => __awaiter(void 0, void 0, void 0, function* () { const browser = yield puppeteer.launch({ headless: true }); const page = yield browser.newPage(); yield page.goto(url, { waitUntil: 'domcontentloaded' }); yield page.close(); yield browser.close(); }))); const calls = callback.mock.calls; expect(calls.length).toBe(2); const harIds = calls.map((call) => call[1].harId); expect((new Set(harIds)).size).toBe(2); })); }); }); //# sourceMappingURL=test.spec.js.map