fix(slideshow): harden media controls in present decks (#1619)

This commit is contained in:
Vance Ingalls
2026-06-20 23:35:58 -07:00
committed by GitHub
parent 0d2198e654
commit 341e65aea2
16 changed files with 1713 additions and 81 deletions
+34
View File
@@ -11,6 +11,8 @@ function createMockDeps() {
onSetMuted: vi.fn(),
onSetVolume: vi.fn(),
onSetMediaOutputMuted: vi.fn(),
onSetNativeMediaSyncDisabled: vi.fn(),
onSetWebAudioMediaDisabled: vi.fn(),
onSetPlaybackRate: vi.fn(),
onSetColorGrading: vi.fn(),
onSetColorGradingCompare: vi.fn(),
@@ -107,6 +109,38 @@ describe("installRuntimeControlBridge", () => {
expect(deps.onSetMediaOutputMuted).toHaveBeenCalledWith(false);
});
it("dispatches set-native-media-sync-disabled command", () => {
const deps = createMockDeps();
const handler = installRuntimeControlBridge(deps);
handler(makeControlMessage("set-native-media-sync-disabled", { disabled: true }));
expect(deps.onSetNativeMediaSyncDisabled).toHaveBeenCalledWith(true);
handler(makeControlMessage("set-native-media-sync-disabled", { disabled: false }));
expect(deps.onSetNativeMediaSyncDisabled).toHaveBeenCalledWith(false);
});
it("set-native-media-sync-disabled coerces absent flag to false", () => {
const deps = createMockDeps();
const handler = installRuntimeControlBridge(deps);
handler(makeControlMessage("set-native-media-sync-disabled"));
expect(deps.onSetNativeMediaSyncDisabled).toHaveBeenCalledWith(false);
});
it("dispatches set-web-audio-media-disabled command", () => {
const deps = createMockDeps();
const handler = installRuntimeControlBridge(deps);
handler(makeControlMessage("set-web-audio-media-disabled", { disabled: true }));
expect(deps.onSetWebAudioMediaDisabled).toHaveBeenCalledWith(true);
handler(makeControlMessage("set-web-audio-media-disabled", { disabled: false }));
expect(deps.onSetWebAudioMediaDisabled).toHaveBeenCalledWith(false);
});
it("set-web-audio-media-disabled coerces absent flag to false", () => {
const deps = createMockDeps();
const handler = installRuntimeControlBridge(deps);
handler(makeControlMessage("set-web-audio-media-disabled"));
expect(deps.onSetWebAudioMediaDisabled).toHaveBeenCalledWith(false);
});
it("dispatches set-playback-rate command", () => {
const deps = createMockDeps();
const handler = installRuntimeControlBridge(deps);