import { describe, expect, it } from "vitest"; import { findRawWindowOpenLines } from "../../scripts/check-no-raw-window-open.mjs"; describe("check-no-raw-window-open", () => { it("finds direct window.open calls", () => { const source = ` function openDocs() { window.open("https://docs.openclaw.ai"); } `; expect(findRawWindowOpenLines(source)).toEqual([3]); }); it("finds globalThis.open calls", () => { const source = ` function openDocs() { globalThis.open("https://docs.openclaw.ai"); } `; expect(findRawWindowOpenLines(source)).toEqual([3]); }); it("ignores mentions in strings and comments", () => { const source = ` // window.open("https://example.com") const text = "window.open('https://example.com')"; `; expect(findRawWindowOpenLines(source)).toEqual([]); }); it("handles parenthesized and asserted window references", () => { const source = ` const openRef = (window as Window).open; openRef("https://example.com"); (window as Window).open("https://example.com"); `; expect(findRawWindowOpenLines(source)).toEqual([4]); }); });