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

44 lines
1.5 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
createBuildSetVisibleOverlayVisibleMainDepsHandler,
createBuildToggleVisibleOverlayMainDepsHandler,
} from './overlay-visibility-actions-main-deps';
test('overlay visibility action main deps builders map callbacks', () => {
const calls: string[] = [];
let warmupStarts = 0;
const setVisible = createBuildSetVisibleOverlayVisibleMainDepsHandler({
setVisibleOverlayVisibleCore: () => calls.push('visible-core'),
setVisibleOverlayVisibleState: (visible) => calls.push(`visible-state:${visible}`),
updateVisibleOverlayVisibility: () => calls.push('update-visible'),
onVisibleOverlayEnabled: () => {
warmupStarts += 1;
},
})();
setVisible.setVisibleOverlayVisibleCore({
visible: true,
setVisibleOverlayVisibleState: () => {},
updateVisibleOverlayVisibility: () => {},
});
setVisible.setVisibleOverlayVisibleState(true);
setVisible.updateVisibleOverlayVisibility();
setVisible.onVisibleOverlayEnabled?.();
const toggleVisible = createBuildToggleVisibleOverlayMainDepsHandler({
getVisibleOverlayVisible: () => false,
setVisibleOverlayVisible: (visible) => calls.push(`toggle-visible:${visible}`),
})();
assert.equal(toggleVisible.getVisibleOverlayVisible(), false);
toggleVisible.setVisibleOverlayVisible(true);
assert.deepEqual(calls, [
'visible-core',
'visible-state:true',
'update-visible',
'toggle-visible:true',
]);
assert.equal(warmupStarts, 1);
});