mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-20 03:16:46 -07:00
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { createBuildHandleInitialArgsMainDepsHandler } from './initial-args-main-deps';
|
|
|
|
test('initial args main deps builder maps runtime callbacks and state readers', () => {
|
|
const calls: string[] = [];
|
|
const args = { start: true } as never;
|
|
const mpvClient = { connected: false, connect: () => calls.push('connect') };
|
|
const deps = createBuildHandleInitialArgsMainDepsHandler({
|
|
getInitialArgs: () => args,
|
|
isBackgroundMode: () => true,
|
|
shouldEnsureTrayOnStartup: () => false,
|
|
ensureTray: () => calls.push('ensure-tray'),
|
|
isTexthookerOnlyMode: () => false,
|
|
hasImmersionTracker: () => true,
|
|
getMpvClient: () => mpvClient,
|
|
logInfo: (message) => calls.push(`info:${message}`),
|
|
handleCliCommand: (_args, source) => calls.push(`cli:${source}`),
|
|
})();
|
|
|
|
assert.equal(deps.getInitialArgs(), args);
|
|
assert.equal(deps.isBackgroundMode(), true);
|
|
assert.equal(deps.shouldEnsureTrayOnStartup(), false);
|
|
assert.equal(deps.isTexthookerOnlyMode(), false);
|
|
assert.equal(deps.hasImmersionTracker(), true);
|
|
assert.equal(deps.getMpvClient(), mpvClient);
|
|
|
|
deps.ensureTray();
|
|
deps.logInfo('x');
|
|
deps.handleCliCommand(args, 'initial');
|
|
assert.deepEqual(calls, ['ensure-tray', 'info:x', 'cli:initial']);
|
|
});
|