Merge pull request #706 from heygen-com/fix/player-renderseek-setter

This commit is contained in:
Miguel Ángel
2026-05-10 20:33:27 +02:00
committed by GitHub
2 changed files with 32 additions and 0 deletions
+29
View File
@@ -282,4 +282,33 @@ describe("initSandboxRuntimeModular", () => {
expect(video.paused).toBe(true);
expect(video.currentTime).toBe(0);
});
it("allows external code to reassign delegated __player methods", () => {
const root = document.createElement("div");
root.setAttribute("data-composition-id", "main");
root.setAttribute("data-root", "true");
root.setAttribute("data-start", "0");
root.setAttribute("data-width", "1920");
root.setAttribute("data-height", "1080");
document.body.appendChild(root);
(window as Window & { __timelines?: Record<string, RuntimeTimelineLike> }).__timelines = {
main: createMockTimeline(10),
};
initSandboxRuntimeModular();
const player = (
window as Window & {
__player?: { renderSeek: (timeSeconds: number) => void };
}
).__player;
expect(player).toBeDefined();
if (!player) return;
const original = player.renderSeek;
expect(() => {
player.renderSeek = (t: number) => original(t);
}).not.toThrow();
});
});
+3
View File
@@ -1955,6 +1955,9 @@ export function initSandboxRuntimeModular(): void {
for (const key of delegated) {
Object.defineProperty(playerApi, key, {
get: () => player[key],
set: (v: unknown) => {
(player as Record<string, unknown>)[key] = v;
},
configurable: true,
});
}