diff --git a/tests/serialization/scene-document-json.test.ts b/tests/serialization/scene-document-json.test.ts index cf929010..29ec244d 100644 --- a/tests/serialization/scene-document-json.test.ts +++ b/tests/serialization/scene-document-json.test.ts @@ -19,6 +19,7 @@ import { createTerrain } from "../../src/document/terrains"; import { AUTHORED_TERRAIN_PAINT_SCENE_DOCUMENT_VERSION, AUTHORED_TERRAIN_FOUNDATION_SCENE_DOCUMENT_VERSION, + CAMERA_RIG_MAPPED_RAIL_SCENE_DOCUMENT_VERSION, CAMERA_RIG_CONTROL_SURFACE_SCENE_DOCUMENT_VERSION, CAMERA_RIG_ENTITY_SCENE_DOCUMENT_VERSION, CELESTIAL_BODY_OVERLAY_SCENE_DOCUMENT_VERSION, @@ -271,6 +272,42 @@ describe("scene document JSON", () => { expect(migratedDocument.world.shaderSky.stars.horizonFadeOffset).toBe(0); }); + it("migrates v78 scene documents by defaulting shader sky aurora settings", () => { + const document = createEmptySceneDocument({ + name: "Legacy Shader Aurora Scene" + }); + document.world.background = { + mode: "shader" + }; + document.world.shaderSky.dayTopColorHex = "#335577"; + document.world.shaderSky.dayBottomColorHex = "#aaccee"; + + const legacyDocument = JSON.parse( + serializeSceneDocument(document) + ) as Record; + legacyDocument.version = CAMERA_RIG_MAPPED_RAIL_SCENE_DOCUMENT_VERSION; + delete ( + ( + legacyDocument.world as { + shaderSky: Record; + } + ).shaderSky as Record + ).aurora; + + const migratedDocument = parseSceneDocumentJson( + JSON.stringify(legacyDocument) + ); + + expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION); + expect(migratedDocument.world.shaderSky.aurora.enabled).toBe(false); + expect(migratedDocument.world.shaderSky.aurora.primaryColorHex).toBe( + "#6df7d0" + ); + expect(migratedDocument.world.shaderSky.aurora.secondaryColorHex).toBe( + "#6e8dff" + ); + }); + it("migrates v74 scene documents by defaulting celestial orbit settings from the legacy sun direction", () => { const document = createEmptySceneDocument({ name: "Legacy Celestial Orbit Scene"