refactor: extract mpv render metrics runtime apply helper

This commit is contained in:
2026-02-09 23:03:40 -08:00
parent 01e0847625
commit ee1b94ca5c
4 changed files with 65 additions and 23 deletions

View File

@@ -0,0 +1,37 @@
import test from "node:test";
import assert from "node:assert/strict";
import { MpvSubtitleRenderMetrics } from "../../types";
import { applyMpvSubtitleRenderMetricsPatchService } from "./mpv-render-metrics-service";
const BASE: MpvSubtitleRenderMetrics = {
subPos: 100,
subFontSize: 38,
subScale: 1,
subMarginY: 34,
subMarginX: 19,
subFont: "sans-serif",
subSpacing: 0,
subBold: false,
subItalic: false,
subBorderSize: 2.5,
subShadowOffset: 0,
subAssOverride: "yes",
subScaleByWindow: true,
subUseMargins: true,
osdHeight: 720,
osdDimensions: null,
};
test("applyMpvSubtitleRenderMetricsPatchService returns unchanged on empty patch", () => {
const { next, changed } = applyMpvSubtitleRenderMetricsPatchService(BASE, {});
assert.equal(changed, false);
assert.deepEqual(next, BASE);
});
test("applyMpvSubtitleRenderMetricsPatchService reports changed when patch modifies value", () => {
const { next, changed } = applyMpvSubtitleRenderMetricsPatchService(BASE, {
subPos: 95,
});
assert.equal(changed, true);
assert.equal(next.subPos, 95);
});