From d54dec1bf90a0cf0dfa71de27d4b7058b7d5922e Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 23 Apr 2026 02:39:01 +0200 Subject: [PATCH] auto-git: [change] tests/domain/scene-document-validation.test.ts --- .../domain/scene-document-validation.test.ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/domain/scene-document-validation.test.ts b/tests/domain/scene-document-validation.test.ts index 01eca185..9e011562 100644 --- a/tests/domain/scene-document-validation.test.ts +++ b/tests/domain/scene-document-validation.test.ts @@ -3,7 +3,9 @@ import { describe, expect, it } from "vitest"; import { createBoxBrush } from "../../src/document/brushes"; import { createActiveSceneControlTargetRef, + createActivateCameraRigOverrideControlEffect, createActorControlTargetRef, + createCameraRigControlTargetRef, createFollowActorPathControlEffect, createLightControlTargetRef, createPlayActorAnimationControlEffect, @@ -422,6 +424,42 @@ describe("validateSceneDocument", () => { expect(validation.errors).toEqual([]); }); + it("accepts typed camera rig control effects in scheduler routines and interaction links", () => { + const triggerVolume = createTriggerVolumeEntity({ + id: "entity-trigger-camera" + }); + const cameraRig = createCameraRigEntity({ + id: "entity-camera-rig-main" + }); + const document = createEmptySceneDocument(); + document.entities[triggerVolume.id] = triggerVolume; + document.entities[cameraRig.id] = cameraRig; + document.scheduler.routines["routine-camera-override"] = + createProjectScheduleRoutine({ + id: "routine-camera-override", + title: "Camera Override", + target: createCameraRigControlTargetRef(cameraRig.id), + startHour: 8, + endHour: 18, + effect: createActivateCameraRigOverrideControlEffect({ + target: createCameraRigControlTargetRef(cameraRig.id) + }) + }); + document.interactionLinks["link-camera-override"] = createControlInteractionLink( + { + id: "link-camera-override", + sourceEntityId: triggerVolume.id, + effect: createActivateCameraRigOverrideControlEffect({ + target: createCameraRigControlTargetRef(cameraRig.id) + }) + } + ); + + const validation = validateSceneDocument(document); + + expect(validation.errors).toEqual([]); + }); + it("accepts actor scheduler animation and follow-path effects when the actor has one bound NPC usage", () => { const actorTarget = createActorControlTargetRef("actor-patroller"); const npcModelAsset = {