Files
SubMiner/src/main/runtime/field-grouping-overlay-main-deps.test.ts
2026-03-01 02:36:51 -08:00

39 lines
1.5 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { createBuildFieldGroupingOverlayMainDepsHandler } from './field-grouping-overlay-main-deps';
test('field grouping overlay main deps builder maps window visibility and resolver wiring', () => {
const calls: string[] = [];
const modalSet = new Set<'runtime-options'>();
const resolver = (choice: unknown) => calls.push(`resolver:${choice}`);
const deps = createBuildFieldGroupingOverlayMainDepsHandler({
getMainWindow: () => ({
isDestroyed: () => false,
webContents: {
send: () => {},
},
}),
getVisibleOverlayVisible: () => true,
setVisibleOverlayVisible: (visible) => calls.push(`visible:${visible}`),
getResolver: () => resolver,
setResolver: (nextResolver) => {
calls.push(`set-resolver:${nextResolver ? 'set' : 'null'}`);
},
getRestoreVisibleOverlayOnModalClose: () => modalSet,
sendToActiveOverlayWindow: (channel, payload) => {
calls.push(`send:${channel}:${String(payload)}`);
return true;
},
})();
assert.equal(deps.getMainWindow()?.isDestroyed(), false);
assert.equal(deps.getVisibleOverlayVisible(), true);
assert.equal(deps.getResolver(), resolver);
assert.equal(deps.getRestoreVisibleOverlayOnModalClose(), modalSet);
deps.setVisibleOverlayVisible(true);
deps.setResolver(null);
assert.equal(deps.sendToVisibleOverlay('kiku:open', 1), true);
assert.deepEqual(calls, ['visible:true', 'set-resolver:null', 'send:kiku:open:1']);
});