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

80 lines
3.0 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
createBuildBroadcastRuntimeOptionsChangedMainDepsHandler,
createBuildGetRuntimeOptionsStateMainDepsHandler,
createBuildOpenRuntimeOptionsPaletteMainDepsHandler,
createBuildRestorePreviousSecondarySubVisibilityMainDepsHandler,
createBuildSendToActiveOverlayWindowMainDepsHandler,
createBuildSetOverlayDebugVisualizationEnabledMainDepsHandler,
} from './overlay-runtime-main-actions-main-deps';
test('get runtime options state main deps builder maps callbacks', () => {
const manager = { listOptions: () => [] };
const deps = createBuildGetRuntimeOptionsStateMainDepsHandler({
getRuntimeOptionsManager: () => manager,
})();
assert.equal(deps.getRuntimeOptionsManager(), manager);
});
test('restore secondary sub visibility main deps builder maps callbacks', () => {
const deps = createBuildRestorePreviousSecondarySubVisibilityMainDepsHandler({
getMpvClient: () => ({ connected: true, restorePreviousSecondarySubVisibility: () => {} }),
})();
assert.equal(deps.getMpvClient()?.connected, true);
});
test('broadcast runtime options changed main deps builder maps callbacks', () => {
const calls: string[] = [];
const deps = createBuildBroadcastRuntimeOptionsChangedMainDepsHandler({
broadcastRuntimeOptionsChangedRuntime: () => calls.push('broadcast-runtime'),
getRuntimeOptionsState: () => [],
broadcastToOverlayWindows: (channel) => calls.push(channel),
})();
deps.broadcastRuntimeOptionsChangedRuntime(
() => [],
() => {},
);
deps.broadcastToOverlayWindows('runtime-options:changed');
assert.deepEqual(deps.getRuntimeOptionsState(), []);
assert.deepEqual(calls, ['broadcast-runtime', 'runtime-options:changed']);
});
test('send to active overlay window main deps builder maps callbacks', () => {
const calls: string[] = [];
const deps = createBuildSendToActiveOverlayWindowMainDepsHandler({
sendToActiveOverlayWindowRuntime: () => {
calls.push('send');
return true;
},
})();
assert.equal(deps.sendToActiveOverlayWindowRuntime('x'), true);
assert.deepEqual(calls, ['send']);
});
test('set overlay debug visualization main deps builder maps callbacks', () => {
const calls: string[] = [];
const deps = createBuildSetOverlayDebugVisualizationEnabledMainDepsHandler({
setOverlayDebugVisualizationEnabledRuntime: () => calls.push('set-runtime'),
getCurrentEnabled: () => false,
setCurrentEnabled: () => calls.push('set-current'),
})();
deps.setOverlayDebugVisualizationEnabledRuntime(false, true, () => {});
assert.equal(deps.getCurrentEnabled(), false);
deps.setCurrentEnabled(true);
assert.deepEqual(calls, ['set-runtime', 'set-current']);
});
test('open runtime options palette main deps builder maps callbacks', () => {
const calls: string[] = [];
const deps = createBuildOpenRuntimeOptionsPaletteMainDepsHandler({
openRuntimeOptionsPaletteRuntime: () => calls.push('open'),
})();
deps.openRuntimeOptionsPaletteRuntime();
assert.deepEqual(calls, ['open']);
});