import { describe, it, before, after } from "node:test"; import assert from "node:assert/strict"; import { chromium, type Browser, type Page } from "playwright"; import { discoverLazyAssetsInPage } from "../src/capture/capture.js"; const ESBUILD_SHIM = "globalThis.__name = globalThis.__name || ((fn) => fn);" + "globalThis.__defProp = globalThis.__defProp || Object.defineProperty;"; const VW = 1280, VH = 800; const BASE = "https://example.com/page/"; // --------------------------------------------------------------------------- // Item 2: extended lazy-asset discovery sweep (in-page discovery function). // --------------------------------------------------------------------------- describe("lazySweep: discoverLazyAssetsInPage", () => { let browser: Browser; before(async () => { browser = await chromium.launch(); }); after(async () => { await browser.close(); }); const discover = async (bodyHtml: string): Promise => { const page: Page = await browser.newPage(); await page.setViewportSize({ width: VW, height: VH }); await page.addInitScript(ESBUILD_SHIM); // A gives relative refs a stable absolute form to assert against. await page.setContent(`${bodyHtml}`); await page.evaluate(ESBUILD_SHIM); const refs = await page.evaluate(discoverLazyAssetsInPage); await page.close(); return refs; }; it("discovers img/source src + srcset inside