From 78f0f85aefd4b371516ec2ce5c50bf94823a4012 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 22 Apr 2026 16:55:23 +0200 Subject: [PATCH] auto-git: [change] tests/serialization/project-document-json.test.ts [change] tests/serialization/scene-document-json.test.ts --- .../project-document-json.test.ts | 2 ++ .../serialization/scene-document-json.test.ts | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/tests/serialization/project-document-json.test.ts b/tests/serialization/project-document-json.test.ts index 83ac56bb..1a5a093f 100644 --- a/tests/serialization/project-document-json.test.ts +++ b/tests/serialization/project-document-json.test.ts @@ -65,6 +65,8 @@ describe("project document JSON", () => { mode: "shader" }; activeScene.world.showCelestialBodies = true; + activeScene.world.celestialOrbits.sun.azimuthDegrees = 132; + activeScene.world.celestialOrbits.moon.azimuthDegrees = 204; activeScene.world.shaderSky.dayTopColorHex = "#4a76bb"; activeScene.world.shaderSky.dayBottomColorHex = "#d6efff"; activeScene.world.shaderSky.horizonHeight = -0.06; diff --git a/tests/serialization/scene-document-json.test.ts b/tests/serialization/scene-document-json.test.ts index b330f2a5..8182ba5d 100644 --- a/tests/serialization/scene-document-json.test.ts +++ b/tests/serialization/scene-document-json.test.ts @@ -16,6 +16,7 @@ import { createTerrain } from "../../src/document/terrains"; import { AUTHORED_TERRAIN_PAINT_SCENE_DOCUMENT_VERSION, AUTHORED_TERRAIN_FOUNDATION_SCENE_DOCUMENT_VERSION, + CAMERA_RIG_ENTITY_SCENE_DOCUMENT_VERSION, CELESTIAL_BODY_OVERLAY_SCENE_DOCUMENT_VERSION, DAWN_DUSK_BACKGROUND_IMAGE_SCENE_DOCUMENT_VERSION, FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION, @@ -38,6 +39,7 @@ import { SCENE_EDITOR_PREFERENCES_SCENE_DOCUMENT_VERSION, SCENE_TRANSITION_ENTITIES_SCENE_DOCUMENT_VERSION, SCENE_TRANSITION_SEQUENCE_EFFECTS_SCENE_DOCUMENT_VERSION, + CELESTIAL_ORBIT_SETTINGS_SCENE_DOCUMENT_VERSION, SCENE_DOCUMENT_VERSION, SHADER_SKY_HORIZON_HEIGHT_SCENE_DOCUMENT_VERSION, SHADER_SKY_SCENE_DOCUMENT_VERSION, @@ -209,6 +211,39 @@ describe("scene document JSON", () => { expect(migratedDocument.world.shaderSky.stars.horizonFadeOffset).toBe(0); }); + it("migrates v74 scene documents by defaulting celestial orbit settings from the legacy sun direction", () => { + const document = createEmptySceneDocument({ + name: "Legacy Celestial Orbit Scene" + }); + document.world.sunLight.direction = { + x: -0.4, + y: 1, + z: 0.2 + }; + + const legacyDocument = JSON.parse( + serializeSceneDocument(document) + ) as Record; + legacyDocument.version = CAMERA_RIG_ENTITY_SCENE_DOCUMENT_VERSION; + delete (legacyDocument.world as Record).celestialOrbits; + + const migratedDocument = parseSceneDocumentJson( + JSON.stringify(legacyDocument) + ); + + expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION); + expect(migratedDocument.world.celestialOrbits.sun.azimuthDegrees).toBeCloseTo( + 153.4349, + 3 + ); + expect( + migratedDocument.world.celestialOrbits.sun.peakAltitudeDegrees + ).toBeGreaterThan(60); + expect(migratedDocument.world.celestialOrbits.moon).toEqual( + migratedDocument.world.celestialOrbits.sun + ); + }); + it("migrates pre-paint terrain documents by defaulting terrain layer data", () => { const legacyTerrainDocument = { ...createEmptySceneDocument({