Add migration test for terrain documents missing foliage blocker masks

This commit is contained in:
2026-05-02 11:33:13 +02:00
parent 4e08d788c2
commit f26c01eddc

View File

@@ -248,6 +248,39 @@ describe("scene document JSON", () => {
expect(migratedDocument.terrains[terrain.id]?.foliageMasks).toEqual({});
});
it("migrates pre-foliage-blocker terrain documents with an empty blocker mask", () => {
const terrain = createTerrain({
id: "terrain-pre-foliage-blocker-mask",
sampleCountX: 2,
sampleCountZ: 2
});
const document = createEmptySceneDocument({
name: "Legacy Terrain Blocker-Free Scene"
});
document.terrains[terrain.id] = terrain;
const legacyDocument = JSON.parse(
serializeSceneDocument(document)
) as Record<string, unknown>;
legacyDocument.version = FOLIAGE_QUALITY_SCENE_DOCUMENT_VERSION;
delete ((legacyDocument.terrains as Record<string, Record<string, unknown>>)[
terrain.id
] as Record<string, unknown>).foliageBlockerMask;
const migratedDocument = parseSceneDocumentJson(
JSON.stringify(legacyDocument)
);
expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION);
expect(
migratedDocument.terrains[terrain.id]?.foliageBlockerMask
).toEqual({
resolutionX: 2,
resolutionZ: 2,
values: [0, 0, 0, 0]
});
});
it("round-trips camera rig control effects in interaction links, sequences, and scheduler routines", () => {
const cameraRig = createCameraRigEntity({
id: "entity-camera-rig-main",