mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 18:22:42 -08:00
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import {
|
|
createBuildEnsureYomitanExtensionLoadedMainDepsHandler,
|
|
createBuildLoadYomitanExtensionMainDepsHandler,
|
|
} from './yomitan-extension-loader-main-deps';
|
|
|
|
test('load yomitan extension main deps builder maps callbacks', async () => {
|
|
const calls: string[] = [];
|
|
const deps = createBuildLoadYomitanExtensionMainDepsHandler({
|
|
loadYomitanExtensionCore: async () => {
|
|
calls.push('load-core');
|
|
return null;
|
|
},
|
|
userDataPath: '/tmp/subminer',
|
|
getYomitanParserWindow: () => null,
|
|
setYomitanParserWindow: () => calls.push('set-window'),
|
|
setYomitanParserReadyPromise: () => calls.push('set-ready'),
|
|
setYomitanParserInitPromise: () => calls.push('set-init'),
|
|
setYomitanExtension: () => calls.push('set-ext'),
|
|
})();
|
|
|
|
assert.equal(deps.userDataPath, '/tmp/subminer');
|
|
await deps.loadYomitanExtensionCore({} as never);
|
|
deps.setYomitanParserWindow(null);
|
|
deps.setYomitanParserReadyPromise(null);
|
|
deps.setYomitanParserInitPromise(null);
|
|
deps.setYomitanExtension(null);
|
|
assert.deepEqual(calls, ['load-core', 'set-window', 'set-ready', 'set-init', 'set-ext']);
|
|
});
|
|
|
|
test('ensure yomitan extension loaded main deps builder maps callbacks', async () => {
|
|
const calls: string[] = [];
|
|
const deps = createBuildEnsureYomitanExtensionLoadedMainDepsHandler({
|
|
getYomitanExtension: () => null,
|
|
getLoadInFlight: () => null,
|
|
setLoadInFlight: () => calls.push('set-inflight'),
|
|
loadYomitanExtension: async () => {
|
|
calls.push('load');
|
|
return null;
|
|
},
|
|
})();
|
|
|
|
assert.equal(deps.getYomitanExtension(), null);
|
|
assert.equal(deps.getLoadInFlight(), null);
|
|
deps.setLoadInFlight(null);
|
|
await deps.loadYomitanExtension();
|
|
assert.deepEqual(calls, ['set-inflight', 'load']);
|
|
});
|