Add test for migrating first-slice project time documents

This commit is contained in:
2026-04-12 14:14:38 +02:00
parent eed55b19ad
commit 51f754a193

View File

@@ -170,6 +170,50 @@ describe("project document JSON", () => {
expect(migratedDocument.time).toEqual(createDefaultProjectTimeSettings());
});
it("migrates first-slice project time documents to the richer day-night profile defaults", () => {
const legacyProject = createEmptyProjectDocument({
name: "Legacy Time Project",
sceneName: "Atrium"
});
legacyProject.version = 37;
legacyProject.time = {
startDayNumber: 1,
startTimeOfDayHours: 17.5,
dayLengthMinutes: 20,
sunriseTimeOfDayHours: undefined as never,
sunsetTimeOfDayHours: undefined as never,
dawnDurationHours: undefined as never,
duskDurationHours: undefined as never,
dawn: undefined as never,
dusk: undefined as never,
night: undefined as never
};
const migratedDocument = parseProjectDocumentJson(
JSON.stringify({
...legacyProject,
time: {
startTimeOfDayHours: 17.5,
dayLengthMinutes: 20
}
})
);
expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION);
expect(migratedDocument.time.startTimeOfDayHours).toBe(17.5);
expect(migratedDocument.time.dayLengthMinutes).toBe(20);
expect(migratedDocument.time.sunriseTimeOfDayHours).toBe(
createDefaultProjectTimeSettings().sunriseTimeOfDayHours
);
expect(migratedDocument.time.night).toEqual(
createDefaultProjectTimeSettings().night
);
expect(
migratedDocument.scenes[migratedDocument.activeSceneId]?.world
.projectTimeLightingEnabled
).toBe(true);
});
it("migrates pre-project-name multi-scene documents to Untitled Project", () => {
const migratedDocument = parseProjectDocumentJson(
JSON.stringify({