Files
SubMiner/src/main/runtime/startup-bootstrap-deps-builder.test.ts

45 lines
1.6 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { createBuildStartupBootstrapRuntimeFactoryDepsHandler } from './startup-bootstrap-deps-builder';
test('startup bootstrap deps builder returns mapped runtime factory deps', () => {
const calls: string[] = [];
const factory = createBuildStartupBootstrapRuntimeFactoryDepsHandler({
argv: ['node', 'main.js'],
parseArgs: () => ({}) as never,
setLogLevel: (level) => calls.push(`log:${level}`),
forceX11Backend: () => calls.push('force-x11'),
enforceUnsupportedWaylandMode: () => calls.push('wayland-guard'),
shouldStartApp: () => true,
getDefaultSocketPath: () => '/tmp/mpv.sock',
defaultTexthookerPort: 5174,
configDir: '/tmp/config',
defaultConfig: {} as never,
generateConfigTemplate: () => 'template',
generateDefaultConfigFile: async () => 0,
onConfigGenerated: (exitCode) => calls.push(`generated:${exitCode}`),
onGenerateConfigError: (error) => calls.push(`error:${error.message}`),
startAppLifecycle: () => calls.push('start-lifecycle'),
});
const deps = factory();
assert.deepEqual(deps.argv, ['node', 'main.js']);
assert.equal(deps.getDefaultSocketPath(), '/tmp/mpv.sock');
assert.equal(deps.defaultTexthookerPort, 5174);
deps.setLogLevel('debug', 'config');
deps.forceX11Backend({} as never);
deps.enforceUnsupportedWaylandMode({} as never);
deps.onConfigGenerated(0);
deps.onGenerateConfigError(new Error('oops'));
deps.startAppLifecycle({} as never);
assert.deepEqual(calls, [
'log:debug',
'force-x11',
'wayland-guard',
'generated:0',
'error:oops',
'start-lifecycle',
]);
});