refactor: normalize remaining main runtime dependency setup

This commit is contained in:
2026-02-20 01:30:46 -08:00
parent 197636aabe
commit c6fa197d0d
12 changed files with 416 additions and 66 deletions

View File

@@ -0,0 +1,45 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import type { MpvSubtitleRenderMetrics } from '../../types';
import { createBuildUpdateMpvSubtitleRenderMetricsMainDepsHandler } from './mpv-subtitle-render-metrics-main-deps';
const BASE_METRICS: MpvSubtitleRenderMetrics = {
subPos: 100,
subFontSize: 36,
subScale: 1,
subMarginY: 0,
subMarginX: 0,
subFont: '',
subSpacing: 0,
subBold: false,
subItalic: false,
subBorderSize: 0,
subShadowOffset: 0,
subAssOverride: 'yes',
subScaleByWindow: true,
subUseMargins: true,
osdHeight: 0,
osdDimensions: null,
};
test('mpv subtitle render metrics main deps builder maps callbacks', () => {
const calls: string[] = [];
const deps = createBuildUpdateMpvSubtitleRenderMetricsMainDepsHandler({
getCurrentMetrics: () => BASE_METRICS,
setCurrentMetrics: () => calls.push('set'),
applyPatch: (current, patch) => {
calls.push('apply');
return { next: { ...current, ...patch }, changed: true };
},
broadcastMetrics: () => calls.push('broadcast'),
})();
assert.equal(deps.getCurrentMetrics().subPos, 100);
deps.setCurrentMetrics(BASE_METRICS);
const patched = deps.applyPatch(BASE_METRICS, { subPos: 90 });
deps.broadcastMetrics(BASE_METRICS);
assert.equal(patched.changed, true);
assert.equal(patched.next.subPos, 90);
assert.deepEqual(calls, ['set', 'apply', 'broadcast']);
});