diff --git a/src/app/browser-bridge.ts b/src/app/browser-bridge.ts index e4041c676..1b3951e33 100644 --- a/src/app/browser-bridge.ts +++ b/src/app/browser-bridge.ts @@ -2,10 +2,17 @@ import type { ChatTransport, UIMessage } from 'ai' import type { EditorStore } from '@/app/editor/session/create' +export interface OpenPencilTestHooks { + writeCount?: () => number + mockHandle?: FileSystemFileHandle + savedOpen?: Window['open'] +} + export interface OpenPencilWindowAPI { store?: EditorStore setChatTransport?: (factory: () => ChatTransport) => void openFile?: (path: string) => Promise + test?: OpenPencilTestHooks } declare global { diff --git a/src/global.d.ts b/src/global.d.ts index a12bf4a75..131983748 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -38,9 +38,6 @@ declare global { blob(): Promise }[] > - __TEST_WRITE_COUNT__?(): number - __TEST_MOCK_HANDLE__?: FileSystemFileHandle - __savedOpen?: Window['open'] mockWindowOpen?(url: string): void } } diff --git a/tests/e2e/autosave.spec.ts b/tests/e2e/autosave.spec.ts index 8a5fcfa57..597e42176 100644 --- a/tests/e2e/autosave.spec.ts +++ b/tests/e2e/autosave.spec.ts @@ -31,8 +31,8 @@ test('autosave triggers after scene changes with a file handle', async () => { createWritable: async () => mockWritable } as FileSystemFileHandle - window.__TEST_WRITE_COUNT__ = () => writes - window.__TEST_MOCK_HANDLE__ = mockHandle + window.openPencil ??= {} + window.openPencil.test = { writeCount: () => writes, mockHandle } return writes }) diff --git a/tests/e2e/chat/panel.spec.ts b/tests/e2e/chat/panel.spec.ts index 3e5100c42..06f146ca6 100644 --- a/tests/e2e/chat/panel.spec.ts +++ b/tests/e2e/chat/panel.spec.ts @@ -244,7 +244,8 @@ test('"Get API key" link opens external URL via window.open', async () => { const openedUrls: string[] = [] await page.exposeFunction('mockWindowOpen', (url: string) => openedUrls.push(url)) await page.evaluate(() => { - window.__savedOpen = window.open + window.openPencil ??= {} + window.openPencil.test = { ...window.openPencil.test, savedOpen: window.open } window.open = (url: string | URL) => { window.mockWindowOpen?.(String(url)) return null @@ -260,6 +261,7 @@ test('"Get API key" link opens external URL via window.open', async () => { // Restore await page.evaluate(() => { - if (window.__savedOpen) window.open = window.__savedOpen + const savedOpen = window.openPencil?.test?.savedOpen + if (savedOpen) window.open = savedOpen }) })