mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
99 lines
2.6 KiB
TypeScript
99 lines
2.6 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import {
|
|
getInitialInvisibleOverlayVisibilityService,
|
|
isAutoUpdateEnabledRuntimeService,
|
|
shouldAutoInitializeOverlayRuntimeFromConfigService,
|
|
shouldBindVisibleOverlayToMpvSubVisibilityService,
|
|
} from "./runtime-config-service";
|
|
|
|
const BASE_CONFIG = {
|
|
auto_start_overlay: false,
|
|
bind_visible_overlay_to_mpv_sub_visibility: true,
|
|
invisibleOverlay: {
|
|
startupVisibility: "platform-default" as const,
|
|
},
|
|
ankiConnect: {
|
|
behavior: {
|
|
autoUpdateNewCards: true,
|
|
},
|
|
},
|
|
};
|
|
|
|
test("getInitialInvisibleOverlayVisibilityService handles visibility + platform", () => {
|
|
assert.equal(
|
|
getInitialInvisibleOverlayVisibilityService(
|
|
{ ...BASE_CONFIG, invisibleOverlay: { startupVisibility: "visible" } },
|
|
"linux",
|
|
),
|
|
true,
|
|
);
|
|
assert.equal(
|
|
getInitialInvisibleOverlayVisibilityService(
|
|
{ ...BASE_CONFIG, invisibleOverlay: { startupVisibility: "hidden" } },
|
|
"darwin",
|
|
),
|
|
false,
|
|
);
|
|
assert.equal(
|
|
getInitialInvisibleOverlayVisibilityService(BASE_CONFIG, "linux"),
|
|
false,
|
|
);
|
|
assert.equal(
|
|
getInitialInvisibleOverlayVisibilityService(BASE_CONFIG, "darwin"),
|
|
true,
|
|
);
|
|
});
|
|
|
|
test("shouldAutoInitializeOverlayRuntimeFromConfigService respects auto start and visible startup", () => {
|
|
assert.equal(
|
|
shouldAutoInitializeOverlayRuntimeFromConfigService(BASE_CONFIG),
|
|
false,
|
|
);
|
|
assert.equal(
|
|
shouldAutoInitializeOverlayRuntimeFromConfigService({
|
|
...BASE_CONFIG,
|
|
auto_start_overlay: true,
|
|
}),
|
|
true,
|
|
);
|
|
assert.equal(
|
|
shouldAutoInitializeOverlayRuntimeFromConfigService({
|
|
...BASE_CONFIG,
|
|
invisibleOverlay: { startupVisibility: "visible" },
|
|
}),
|
|
true,
|
|
);
|
|
});
|
|
|
|
test("shouldBindVisibleOverlayToMpvSubVisibilityService returns config value", () => {
|
|
assert.equal(shouldBindVisibleOverlayToMpvSubVisibilityService(BASE_CONFIG), true);
|
|
assert.equal(
|
|
shouldBindVisibleOverlayToMpvSubVisibilityService({
|
|
...BASE_CONFIG,
|
|
bind_visible_overlay_to_mpv_sub_visibility: false,
|
|
}),
|
|
false,
|
|
);
|
|
});
|
|
|
|
test("isAutoUpdateEnabledRuntimeService prefers runtime option and falls back to config", () => {
|
|
assert.equal(
|
|
isAutoUpdateEnabledRuntimeService(BASE_CONFIG, {
|
|
getOptionValue: () => false,
|
|
}),
|
|
false,
|
|
);
|
|
assert.equal(
|
|
isAutoUpdateEnabledRuntimeService(
|
|
{
|
|
...BASE_CONFIG,
|
|
ankiConnect: { behavior: { autoUpdateNewCards: false } },
|
|
},
|
|
null,
|
|
),
|
|
false,
|
|
);
|
|
assert.equal(isAutoUpdateEnabledRuntimeService(BASE_CONFIG, null), true);
|
|
});
|