From e01ecae0a3279618805136218072e9fdfa5ae810 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 15 Apr 2026 06:25:30 +0200 Subject: [PATCH] Add tests for editing actor animation and path effects in ProjectSequencesPanel --- tests/unit/project-sequences-panel.test.tsx | 148 ++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/tests/unit/project-sequences-panel.test.tsx b/tests/unit/project-sequences-panel.test.tsx index 61cd756b..67034a87 100644 --- a/tests/unit/project-sequences-panel.test.tsx +++ b/tests/unit/project-sequences-panel.test.tsx @@ -86,6 +86,9 @@ describe("ProjectSequencesPanel", () => { onSetControlStepColorValue={() => {}} onSetControlStepAnimationClip={() => {}} onSetControlStepAnimationLoop={() => {}} + onSetControlStepPathId={() => {}} + onSetControlStepPathSpeed={() => {}} + onSetControlStepPathLoop={() => {}} onSetDialogueStepDialogueId={() => {}} onSetTeleportStepTarget={onSetTeleportStepTarget} onSetSceneTransitionStepTarget={() => {}} @@ -148,4 +151,149 @@ describe("ProjectSequencesPanel", () => { "entity:sound-a" ); }); + + it("edits actor animation and path effects through the sequence editor", () => { + const onSetControlStepAnimationClip = vi.fn(); + const onSetControlStepAnimationLoop = vi.fn(); + const onSetControlStepPathId = vi.fn(); + const onSetControlStepPathSpeed = vi.fn(); + const onSetControlStepPathLoop = vi.fn(); + + render( + {}} + onAddSequence={() => {}} + onDeleteSequence={() => {}} + onSetSequenceTitle={() => {}} + onAddHeldControlStep={() => {}} + onAddImpulseControlStep={() => {}} + onAddDialogueStep={() => {}} + onAddTeleportStep={() => {}} + onAddSceneTransitionStep={() => {}} + onAddVisibilityStep={() => {}} + onAddPlayAnimationStep={() => {}} + onAddStopAnimationStep={() => {}} + onAddPlaySoundStep={() => {}} + onAddStopSoundStep={() => {}} + onDeleteStep={() => {}} + onSetControlStepTarget={() => {}} + onSetControlStepEffectOption={() => {}} + onSetControlStepNumericValue={() => {}} + onSetControlStepColorValue={() => {}} + onSetControlStepAnimationClip={onSetControlStepAnimationClip} + onSetControlStepAnimationLoop={onSetControlStepAnimationLoop} + onSetControlStepPathId={onSetControlStepPathId} + onSetControlStepPathSpeed={onSetControlStepPathSpeed} + onSetControlStepPathLoop={onSetControlStepPathLoop} + onSetDialogueStepDialogueId={() => {}} + onSetTeleportStepTarget={() => {}} + onSetSceneTransitionStepTarget={() => {}} + onSetVisibilityStepTarget={() => {}} + onSetVisibilityStepMode={() => {}} + /> + ); + + fireEvent.change(screen.getByDisplayValue("Idle"), { + target: { value: "Wave" } + }); + fireEvent.click(screen.getByLabelText("Loop")); + fireEvent.change(screen.getByDisplayValue("Patrol A"), { + target: { value: "path-b" } + }); + fireEvent.blur(screen.getByDisplayValue("1"), { + target: { value: "1.6" } + }); + fireEvent.click(screen.getAllByLabelText("Loop")[1]!); + + expect(onSetControlStepAnimationClip).toHaveBeenCalledWith( + "sequence-actor", + 0, + "Wave" + ); + expect(onSetControlStepAnimationLoop).toHaveBeenCalledWith( + "sequence-actor", + 0, + false + ); + expect(onSetControlStepPathId).toHaveBeenCalledWith( + "sequence-actor", + 1, + "path-b" + ); + expect(onSetControlStepPathSpeed).toHaveBeenCalledWith( + "sequence-actor", + 1, + 1.6 + ); + expect(onSetControlStepPathLoop).toHaveBeenCalledWith( + "sequence-actor", + 1, + true + ); + }); });