import { assertEquals, assertRejects } from "@std/assert"; import { testExtension } from "@berry/api/testing.ts"; import browser from "./mod.ts"; import type { BrowserViewData, Snapshot } from "./types.ts"; Deno.test("historical snapshots can be read without reviving a browser", async () => { const snapshot: Snapshot = { tab: "t1", url: "https://example.com/", title: "Earlier page", text: "Historical", elements: [], truncated: false, frames: [], diagnostics: [], }; const ext = testExtension(browser, { events: [{ type: "observed", version: 1, action: "open", snapshot, at: 100 }], }); try { const data = await ext.request("view", {}) as BrowserViewData; assertEquals(data.active, false); assertEquals(data.tabs, [snapshot]); assertEquals((await ext.call("browser", { action: "tabs" }) as { tabs: unknown[] }).tabs, []); await assertRejects( () => ext.call("browser", { action: "snapshot", tab: "t1" }), Error, "No live tab", ); } finally { await ext.dispose(); } });