import assert from 'node:assert/strict'; import test from 'node:test'; import { createCreateAnilistSetupWindowHandler, createCreateFirstRunSetupWindowHandler, createCreateJellyfinSetupWindowHandler, } from './setup-window-factory'; test('createCreateFirstRunSetupWindowHandler builds first-run setup window', () => { let options: Electron.BrowserWindowConstructorOptions | null = null; const createSetupWindow = createCreateFirstRunSetupWindowHandler({ createBrowserWindow: (nextOptions) => { options = nextOptions; return { id: 'first-run' } as never; }, }); assert.deepEqual(createSetupWindow(), { id: 'first-run' }); assert.deepEqual(options, { width: 480, height: 460, title: 'SubMiner Setup', show: true, autoHideMenuBar: true, resizable: false, minimizable: false, maximizable: false, webPreferences: { nodeIntegration: false, contextIsolation: true, }, }); }); test('createCreateJellyfinSetupWindowHandler builds jellyfin setup window', () => { let options: Electron.BrowserWindowConstructorOptions | null = null; const createSetupWindow = createCreateJellyfinSetupWindowHandler({ createBrowserWindow: (nextOptions) => { options = nextOptions; return { id: 'jellyfin' } as never; }, }); assert.deepEqual(createSetupWindow(), { id: 'jellyfin' }); assert.deepEqual(options, { width: 520, height: 560, title: 'Jellyfin Setup', show: true, autoHideMenuBar: true, webPreferences: { nodeIntegration: false, contextIsolation: true, }, }); }); test('createCreateAnilistSetupWindowHandler builds anilist setup window', () => { let options: Electron.BrowserWindowConstructorOptions | null = null; const createSetupWindow = createCreateAnilistSetupWindowHandler({ createBrowserWindow: (nextOptions) => { options = nextOptions; return { id: 'anilist' } as never; }, }); assert.deepEqual(createSetupWindow(), { id: 'anilist' }); assert.deepEqual(options, { width: 1000, height: 760, title: 'Anilist Setup', show: true, autoHideMenuBar: true, webPreferences: { nodeIntegration: false, contextIsolation: true, }, }); });