diff --git a/packages/cli/src/utils/gsapTweenTails.test.ts b/packages/cli/src/utils/gsapTweenTails.test.ts index a89c7f0625b..d2b56138096 100644 --- a/packages/cli/src/utils/gsapTweenTails.test.ts +++ b/packages/cli/src/utils/gsapTweenTails.test.ts @@ -117,6 +117,29 @@ describe("collectTweenRecords", () => { expect(findTweenTails(records)).toHaveLength(1); }); + it("ignores rendering flags when finding shared tween properties", () => { + const target = {}; + const main = fakeTimeline(0); + fakeTween(main, target, { x: 200, duration: 1, force3D: false, autoRound: false }, 0); + fakeTween(main, target, { opacity: 0.5, duration: 0.4, force3D: false, autoRound: false }, 0.5); + (window as unknown as { __timelines: Record }).__timelines = { main }; + + expect(collectTweenRecords().map(({ properties }) => properties)).toEqual([["x"], ["opacity"]]); + expect(findTweenTails(collectTweenRecords())).toEqual([]); + }); + + it("still reports a shared animated property when rendering flags are present", () => { + const target = {}; + const main = fakeTimeline(0); + fakeTween(main, target, { opacity: 1, duration: 1, force3D: false, autoRound: false }, 0); + fakeTween(main, target, { opacity: 0.5, duration: 0.4, force3D: false, autoRound: false }, 0.5); + (window as unknown as { __timelines: Record }).__timelines = { main }; + + expect(findTweenTails(collectTweenRecords())).toEqual([ + expect.objectContaining({ properties: ["opacity"] }), + ]); + }); + it("returns nothing when no timeline is registered", () => { expect(collectTweenRecords()).toEqual([]); }); diff --git a/packages/cli/src/utils/gsapTweenTails.ts b/packages/cli/src/utils/gsapTweenTails.ts index 8c028b09c19..5b4f5fae3b9 100644 --- a/packages/cli/src/utils/gsapTweenTails.ts +++ b/packages/cli/src/utils/gsapTweenTails.ts @@ -76,6 +76,8 @@ export function collectTweenRecords(): TweenRecord[] { }; const NOT_PROPERTIES = new Set([ "duration", + "force3D", + "autoRound", "delay", "ease", "repeat",