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

47 lines
1.4 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {
createSetVisibleOverlayVisibleHandler,
createToggleVisibleOverlayHandler,
} from './overlay-visibility-actions';
test('set visible overlay handler forwards dependencies to core', () => {
const calls: string[] = [];
let warmupStarts = 0;
const setVisible = createSetVisibleOverlayVisibleHandler({
setVisibleOverlayVisibleCore: (options) => {
calls.push(`core:${options.visible}`);
options.setVisibleOverlayVisibleState(options.visible);
options.updateVisibleOverlayVisibility();
},
setVisibleOverlayVisibleState: (visible) => calls.push(`state:${visible}`),
updateVisibleOverlayVisibility: () => calls.push('update-visible'),
onVisibleOverlayEnabled: () => {
warmupStarts += 1;
},
});
setVisible(true);
assert.deepEqual(calls, ['core:true', 'state:true', 'update-visible']);
assert.equal(warmupStarts, 1);
setVisible(false);
assert.equal(warmupStarts, 1);
});
test('toggle visible overlay flips current visible state', () => {
const calls: string[] = [];
let current = false;
const toggle = createToggleVisibleOverlayHandler({
getVisibleOverlayVisible: () => current,
setVisibleOverlayVisible: (visible) => {
current = visible;
calls.push(`set:${visible}`);
},
});
toggle();
toggle();
assert.deepEqual(calls, ['set:true', 'set:false']);
});