diff --git a/packages/producer/src/services/renderOrchestrator.test.ts b/packages/producer/src/services/renderOrchestrator.test.ts index 1af6be66b0..07608b26c6 100644 --- a/packages/producer/src/services/renderOrchestrator.test.ts +++ b/packages/producer/src/services/renderOrchestrator.test.ts @@ -109,6 +109,44 @@ describe("extractStandaloneEntryFromIndex", () => { expect(extracted).toBeNull(); }); + + it("re-points the wrapper duration at the scene's own, not the master's", () => { + const indexHtml = ` + + +
+
+
+ +`; + const sceneHtml = ``; + + const extracted = extractStandaloneEntryFromIndex( + indexHtml, + "compositions/scene1.html", + sceneHtml, + ); + + // The extracted standalone advertises the scene's 2s, not the master's 12s. + expect(extracted).toContain('data-duration="2"'); + expect(extracted).not.toContain('data-duration="12"'); + }); + + it("falls back to the mount's data-duration when the scene file isn't supplied", () => { + const indexHtml = ` + + +
+
+
+ +`; + + const extracted = extractStandaloneEntryFromIndex(indexHtml, "compositions/scene1.html"); + + expect(extracted).toContain('data-duration="2"'); + expect(extracted).not.toContain('data-duration="12"'); + }); }); describe("captureAttemptMadeProgress", () => { diff --git a/packages/producer/src/services/renderOrchestrator.ts b/packages/producer/src/services/renderOrchestrator.ts index 4e241748d5..7028b64e64 100644 --- a/packages/producer/src/services/renderOrchestrator.ts +++ b/packages/producer/src/services/renderOrchestrator.ts @@ -931,7 +931,27 @@ function normalizeCompositionSrcPath(srcPath: string): string { return srcPath.replace(/\\/g, "/").replace(/^\.\//, ""); } -function createStandaloneEntryRenderClone(root: Element, host: Element): Element { +/** + * Read the `data-duration` off a scene file's `