auto-git:

[change] tests/serialization/project-document-json.test.ts
 [change] tests/serialization/scene-document-json.test.ts
This commit is contained in:
2026-04-22 16:55:23 +02:00
parent 46885632cd
commit 78f0f85aef
2 changed files with 37 additions and 0 deletions

View File

@@ -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<string, unknown>;
legacyDocument.version = CAMERA_RIG_ENTITY_SCENE_DOCUMENT_VERSION;
delete (legacyDocument.world as Record<string, unknown>).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({