From d34ec582253ef0cca880007a82dd5487f9c95725 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 2 May 2026 10:53:31 +0200 Subject: [PATCH] Add migration test for scene documents missing foliage quality settings --- .../serialization/scene-document-json.test.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/serialization/scene-document-json.test.ts b/tests/serialization/scene-document-json.test.ts index d4dcee72..77288430 100644 --- a/tests/serialization/scene-document-json.test.ts +++ b/tests/serialization/scene-document-json.test.ts @@ -38,6 +38,7 @@ import { ENTITY_SYSTEM_FOUNDATION_SCENE_DOCUMENT_VERSION, FIRST_ROOM_POLISH_SCENE_DOCUMENT_VERSION, FOLIAGE_FOUNDATION_SCENE_DOCUMENT_VERSION, + FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION, IMPORTED_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION, LOCAL_LIGHTS_AND_SKYBOX_SCENE_DOCUMENT_VERSION, MODEL_ASSET_PIPELINE_SCENE_DOCUMENT_VERSION, @@ -1192,6 +1193,41 @@ describe("scene document JSON", () => { ); }); + it("migrates v93 scene documents without foliage quality settings to defaults", () => { + const emptyScene = createEmptySceneDocument({ + name: "Legacy Foliage Quality Scene" + }); + const { foliage: _foliage, ...legacyAdvancedRendering } = + emptyScene.world.advancedRendering; + + const migratedDocument = migrateSceneDocument({ + version: FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION, + name: emptyScene.name, + time: emptyScene.time, + scheduler: emptyScene.scheduler, + world: { + ...emptyScene.world, + advancedRendering: legacyAdvancedRendering + }, + materials: emptyScene.materials, + textures: emptyScene.textures, + assets: emptyScene.assets, + brushes: emptyScene.brushes, + terrains: emptyScene.terrains, + foliagePrototypes: emptyScene.foliagePrototypes, + foliageLayers: emptyScene.foliageLayers, + paths: emptyScene.paths, + modelInstances: emptyScene.modelInstances, + entities: emptyScene.entities, + interactionLinks: emptyScene.interactionLinks + }); + + expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION); + expect(migratedDocument.world.advancedRendering.foliage).toEqual( + emptyScene.world.advancedRendering.foliage + ); + }); + it("defaults missing water reflection mode and clamps legacy foam limits during migration", () => { const migratedDocument = migrateSceneDocument({ version: SCENE_DOCUMENT_VERSION,