feat(core): add Electron runtime, services, and app composition

This commit is contained in:
2026-02-22 21:43:43 -08:00
parent 448ce03fd4
commit d3fd47f0ec
562 changed files with 69719 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { createBuildRefreshAnilistClientSecretStateMainDepsHandler } from './anilist-token-refresh-main-deps';
test('refresh anilist client secret state main deps builder maps callbacks', () => {
const calls: string[] = [];
const config = { anilist: { accessToken: 'token' } };
const deps = createBuildRefreshAnilistClientSecretStateMainDepsHandler({
getResolvedConfig: () => config as never,
isAnilistTrackingEnabled: () => true,
getCachedAccessToken: () => 'cached',
setCachedAccessToken: () => calls.push('set-cache'),
saveStoredToken: () => calls.push('save'),
loadStoredToken: () => 'stored',
setClientSecretState: () => calls.push('set-state'),
getAnilistSetupPageOpened: () => false,
setAnilistSetupPageOpened: () => calls.push('set-opened'),
openAnilistSetupWindow: () => calls.push('open-window'),
now: () => 123,
})();
assert.equal(deps.getResolvedConfig(), config);
assert.equal(deps.isAnilistTrackingEnabled(config as never), true);
assert.equal(deps.getCachedAccessToken(), 'cached');
deps.setCachedAccessToken(null);
deps.saveStoredToken('x');
assert.equal(deps.loadStoredToken(), 'stored');
deps.setClientSecretState({} as never);
assert.equal(deps.getAnilistSetupPageOpened(), false);
deps.setAnilistSetupPageOpened(true);
deps.openAnilistSetupWindow();
assert.equal(deps.now(), 123);
assert.deepEqual(calls, ['set-cache', 'save', 'set-state', 'set-opened', 'open-window']);
});