Add test for migrating legacy project sequence steps into clips

This commit is contained in:
2026-04-15 00:23:13 +02:00
parent 78098d200e
commit 09fe277239

View File

@@ -14,6 +14,7 @@ import {
DEFAULT_SCENE_EDITOR_SNAP_STEP,
NPC_COLLIDER_SCENE_DOCUMENT_VERSION,
PROJECT_DIALOGUE_LIBRARY_SCENE_DOCUMENT_VERSION,
PROJECT_SEQUENCE_LIBRARY_SCENE_DOCUMENT_VERSION,
SCHEDULER_ACTOR_ROUTINE_EFFECTS_SCENE_DOCUMENT_VERSION,
NPC_PRESENCE_SCENE_DOCUMENT_VERSION,
PLAYER_START_PAUSE_BINDINGS_SCENE_DOCUMENT_VERSION,
@@ -236,6 +237,55 @@ describe("project document JSON", () => {
});
});
it("migrates legacy project sequence steps into clips", () => {
const document = createEmptyProjectDocument({
name: "Legacy Sequence Clip Project"
});
document.sequences.sequences["sequence-legacy-dialogue"] = createProjectSequence({
id: "sequence-legacy-dialogue",
title: "Legacy Dialogue Sequence",
steps: [
{
stepClass: "impulse",
type: "startDialogue",
dialogueId: "dialogue-legacy"
}
]
});
const legacyDocument = JSON.parse(
serializeProjectDocument(document)
) as Record<string, unknown>;
legacyDocument.version = PROJECT_SEQUENCE_LIBRARY_SCENE_DOCUMENT_VERSION;
const legacySequences = (legacyDocument.sequences as { sequences: Record<string, unknown> })
.sequences;
const legacySequence = legacySequences["sequence-legacy-dialogue"] as {
clips?: unknown;
steps?: unknown;
};
legacySequence.steps = legacySequence.clips;
delete legacySequence.clips;
const migratedDocument = parseProjectDocumentJson(
JSON.stringify(legacyDocument)
);
expect(
migratedDocument.sequences.sequences["sequence-legacy-dialogue"]
).toEqual(
expect.objectContaining({
clips: [
{
stepClass: "impulse",
type: "startDialogue",
dialogueId: "dialogue-legacy"
}
]
})
);
});
it("round-trips the project name and authored scene loading overlay settings", () => {
const cellarEntry = createSceneEntryEntity({
id: "entity-scene-entry-cellar-stairs",