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

74 lines
2.3 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
createBuildLaunchBackgroundWarmupTaskMainDepsHandler,
createBuildStartBackgroundWarmupsMainDepsHandler,
} from './startup-warmups-main-deps';
test('startup warmups main deps builders map callbacks', async () => {
const calls: string[] = [];
const launch = createBuildLaunchBackgroundWarmupTaskMainDepsHandler({
now: () => 11,
logDebug: (message) => calls.push(`debug:${message}`),
logWarn: (message) => calls.push(`warn:${message}`),
})();
assert.equal(launch.now(), 11);
launch.logDebug('x');
launch.logWarn('y');
const start = createBuildStartBackgroundWarmupsMainDepsHandler({
getStarted: () => false,
setStarted: (started) => calls.push(`started:${started}`),
isTexthookerOnlyMode: () => false,
launchTask: (label, task) => {
calls.push(`launch:${label}`);
void task();
},
createMecabTokenizerAndCheck: async () => {
calls.push('mecab');
},
ensureYomitanExtensionLoaded: async () => {
calls.push('yomitan');
},
prewarmSubtitleDictionaries: async () => {
calls.push('dict');
},
shouldWarmupMecab: () => false,
shouldWarmupYomitanExtension: () => true,
shouldWarmupSubtitleDictionaries: () => false,
shouldWarmupJellyfinRemoteSession: () => true,
shouldAutoConnectJellyfinRemote: () => true,
startJellyfinRemoteSession: async () => {
calls.push('jellyfin');
},
})();
assert.equal(start.getStarted(), false);
start.setStarted(true);
assert.equal(start.isTexthookerOnlyMode(), false);
start.launchTask('demo', async () => {
calls.push('task');
});
await start.createMecabTokenizerAndCheck();
await start.ensureYomitanExtensionLoaded();
await start.prewarmSubtitleDictionaries();
assert.equal(start.shouldWarmupMecab(), false);
assert.equal(start.shouldWarmupYomitanExtension(), true);
assert.equal(start.shouldWarmupSubtitleDictionaries(), false);
assert.equal(start.shouldWarmupJellyfinRemoteSession(), true);
assert.equal(start.shouldAutoConnectJellyfinRemote(), true);
await start.startJellyfinRemoteSession();
assert.deepEqual(calls, [
'debug:x',
'warn:y',
'started:true',
'launch:demo',
'task',
'mecab',
'yomitan',
'dict',
'jellyfin',
]);
});