mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-03 06:22:41 -08:00
70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import {
|
|
playNextSubtitleRuntimeService,
|
|
replayCurrentSubtitleRuntimeService,
|
|
sendMpvCommandRuntimeService,
|
|
setMpvSubVisibilityRuntimeService,
|
|
showMpvOsdRuntimeService,
|
|
} from "./mpv-control-service";
|
|
|
|
test("showMpvOsdRuntimeService sends show-text when connected", () => {
|
|
const commands: (string | number)[][] = [];
|
|
showMpvOsdRuntimeService(
|
|
{
|
|
connected: true,
|
|
send: ({ command }) => {
|
|
commands.push(command);
|
|
},
|
|
},
|
|
"hello",
|
|
);
|
|
assert.deepEqual(commands, [["show-text", "hello", "3000"]]);
|
|
});
|
|
|
|
test("showMpvOsdRuntimeService logs fallback when disconnected", () => {
|
|
const logs: string[] = [];
|
|
showMpvOsdRuntimeService(
|
|
{
|
|
connected: false,
|
|
send: () => {},
|
|
},
|
|
"hello",
|
|
(line) => {
|
|
logs.push(line);
|
|
},
|
|
);
|
|
assert.deepEqual(logs, ["OSD (MPV not connected): hello"]);
|
|
});
|
|
|
|
test("mpv runtime command wrappers call expected client methods", () => {
|
|
const calls: string[] = [];
|
|
const client = {
|
|
connected: true,
|
|
send: ({ command }: { command: (string | number)[] }) => {
|
|
calls.push(`send:${command.join(",")}`);
|
|
},
|
|
replayCurrentSubtitle: () => {
|
|
calls.push("replay");
|
|
},
|
|
playNextSubtitle: () => {
|
|
calls.push("next");
|
|
},
|
|
setSubVisibility: (visible: boolean) => {
|
|
calls.push(`subVisible:${visible}`);
|
|
},
|
|
};
|
|
|
|
replayCurrentSubtitleRuntimeService(client);
|
|
playNextSubtitleRuntimeService(client);
|
|
sendMpvCommandRuntimeService(client, ["script-message", "x"]);
|
|
setMpvSubVisibilityRuntimeService(client, false);
|
|
|
|
assert.deepEqual(calls, [
|
|
"replay",
|
|
"next",
|
|
"send:script-message,x",
|
|
"subVisible:false",
|
|
]);
|
|
});
|