mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
66 lines
2.1 KiB
TypeScript
66 lines
2.1 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import type { BaseWindowTracker } from '../../window-trackers';
|
|
import type { KikuFieldGroupingChoice } from '../../types';
|
|
import { createOverlayRuntimeBootstrapHandlers } from './overlay-runtime-bootstrap-handlers';
|
|
|
|
test('overlay runtime bootstrap handlers compose options builder and bootstrap handler', () => {
|
|
const appState = {
|
|
backendOverride: null as string | null,
|
|
windowTracker: null as BaseWindowTracker | null,
|
|
subtitleTimingTracker: null as unknown,
|
|
mpvClient: null,
|
|
mpvSocketPath: '/tmp/mpv.sock',
|
|
runtimeOptionsManager: null,
|
|
ankiIntegration: null as unknown,
|
|
};
|
|
let initialized = false;
|
|
let warmupsStarted = 0;
|
|
|
|
const { initializeOverlayRuntime } = createOverlayRuntimeBootstrapHandlers({
|
|
initializeOverlayRuntimeMainDeps: {
|
|
appState,
|
|
overlayManager: {
|
|
getVisibleOverlayVisible: () => true,
|
|
},
|
|
overlayVisibilityRuntime: {
|
|
updateVisibleOverlayVisibility: () => {},
|
|
},
|
|
overlayShortcutsRuntime: {
|
|
syncOverlayShortcuts: () => {},
|
|
},
|
|
createMainWindow: () => {},
|
|
registerGlobalShortcuts: () => {},
|
|
updateVisibleOverlayBounds: () => {},
|
|
getOverlayWindows: () => [],
|
|
getResolvedConfig: () => ({}),
|
|
showDesktopNotification: () => {},
|
|
createFieldGroupingCallback: () => async () =>
|
|
({
|
|
keepNoteId: 1,
|
|
deleteNoteId: 2,
|
|
deleteDuplicate: false,
|
|
cancelled: true,
|
|
}) as KikuFieldGroupingChoice,
|
|
getKnownWordCacheStatePath: () => '/tmp/known.json',
|
|
shouldStartAnkiIntegration: () => true,
|
|
},
|
|
initializeOverlayRuntimeBootstrapDeps: {
|
|
isOverlayRuntimeInitialized: () => initialized,
|
|
initializeOverlayRuntimeCore: () => {},
|
|
setOverlayRuntimeInitialized: (next) => {
|
|
initialized = next;
|
|
},
|
|
startBackgroundWarmups: () => {
|
|
warmupsStarted += 1;
|
|
},
|
|
},
|
|
});
|
|
|
|
initializeOverlayRuntime();
|
|
initializeOverlayRuntime();
|
|
|
|
assert.equal(initialized, true);
|
|
assert.equal(warmupsStarted, 1);
|
|
});
|