mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
feat(core): add Electron runtime, services, and app composition
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
async function loadRegistryOrSkip(t: test.TestContext) {
|
||||
try {
|
||||
return await import('./registry');
|
||||
} catch (error) {
|
||||
if (error instanceof Error && error.message.includes('node:sqlite')) {
|
||||
t.skip('registry import requires node:sqlite support in this runtime');
|
||||
return null;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
test('createMainRuntimeRegistry exposes expected runtime domains', async (t) => {
|
||||
const loaded = await loadRegistryOrSkip(t);
|
||||
if (!loaded) return;
|
||||
const { createMainRuntimeRegistry } = loaded;
|
||||
const registry = createMainRuntimeRegistry();
|
||||
|
||||
assert.ok(registry.anilist);
|
||||
assert.ok(registry.jellyfin);
|
||||
assert.ok(registry.overlay);
|
||||
assert.ok(registry.startup);
|
||||
assert.ok(registry.mpv);
|
||||
assert.ok(registry.shortcuts);
|
||||
assert.ok(registry.ipc);
|
||||
assert.ok(registry.mining);
|
||||
});
|
||||
|
||||
test('registry domains expose representative factories', async (t) => {
|
||||
const loaded = await loadRegistryOrSkip(t);
|
||||
if (!loaded) return;
|
||||
const { createMainRuntimeRegistry } = loaded;
|
||||
const registry = createMainRuntimeRegistry();
|
||||
|
||||
assert.equal(typeof registry.anilist.createNotifyAnilistSetupHandler, 'function');
|
||||
assert.equal(typeof registry.jellyfin.createRunJellyfinCommandHandler, 'function');
|
||||
assert.equal(typeof registry.overlay.createOverlayVisibilityRuntime, 'function');
|
||||
assert.equal(typeof registry.startup.createStartupRuntimeHandlers, 'function');
|
||||
assert.equal(typeof registry.mpv.createMpvClientRuntimeServiceFactory, 'function');
|
||||
assert.equal(typeof registry.shortcuts.createGlobalShortcutsRuntimeHandlers, 'function');
|
||||
assert.equal(typeof registry.ipc.createIpcRuntimeHandlers, 'function');
|
||||
assert.equal(typeof registry.mining.createMineSentenceCardHandler, 'function');
|
||||
});
|
||||
Reference in New Issue
Block a user