From 41c2f316e69216dfb72ecb67475a5b13e9d733fb Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 27 Apr 2026 15:44:15 +0200 Subject: [PATCH] Test: Add migration test for Player Start input bindings --- .../serialization/scene-document-json.test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/serialization/scene-document-json.test.ts b/tests/serialization/scene-document-json.test.ts index 906fde9c..5f771da1 100644 --- a/tests/serialization/scene-document-json.test.ts +++ b/tests/serialization/scene-document-json.test.ts @@ -1688,6 +1688,51 @@ describe("scene document JSON", () => { expect(migratedDocument.entities[playerStart.id]).toEqual(playerStart); }); + it("migrates version 81 Player Start input bindings to include default interact bindings", () => { + const playerStart = createPlayerStartEntity({ + id: "entity-player-start-legacy-interact-binding" + }); + const legacyDocument = { + ...createEmptySceneDocument({ + name: "Legacy Player Interact Binding Scene" + }), + version: PLAYER_START_INTERACTION_ANGLE_SCENE_DOCUMENT_VERSION, + entities: { + [playerStart.id]: { + ...playerStart, + inputBindings: { + keyboard: { + moveForward: playerStart.inputBindings.keyboard.moveForward, + moveBackward: playerStart.inputBindings.keyboard.moveBackward, + moveLeft: playerStart.inputBindings.keyboard.moveLeft, + moveRight: playerStart.inputBindings.keyboard.moveRight, + jump: playerStart.inputBindings.keyboard.jump, + sprint: playerStart.inputBindings.keyboard.sprint, + crouch: playerStart.inputBindings.keyboard.crouch, + pauseTime: playerStart.inputBindings.keyboard.pauseTime + }, + gamepad: { + moveForward: playerStart.inputBindings.gamepad.moveForward, + moveBackward: playerStart.inputBindings.gamepad.moveBackward, + moveLeft: playerStart.inputBindings.gamepad.moveLeft, + moveRight: playerStart.inputBindings.gamepad.moveRight, + jump: playerStart.inputBindings.gamepad.jump, + sprint: playerStart.inputBindings.gamepad.sprint, + crouch: playerStart.inputBindings.gamepad.crouch, + pauseTime: playerStart.inputBindings.gamepad.pauseTime, + cameraLook: playerStart.inputBindings.gamepad.cameraLook + } + } + } + } + }; + + const migratedDocument = migrateSceneDocument(legacyDocument); + + expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION); + expect(migratedDocument.entities[playerStart.id]).toEqual(playerStart); + }); + it("migrates version 30 Player Start entities to include the default movement template", () => { const playerStart = { id: "entity-player-start-legacy-movement-template",