Update player start serialization tests to include interaction angle/sector logic

This commit is contained in:
2026-04-27 15:17:54 +02:00
parent df16fb067b
commit b80a62d180

View File

@@ -3,9 +3,10 @@ import { describe, expect, it } from "vitest";
import { migrateSceneDocument } from "../../src/document/migrate-scene-document";
import {
createEmptySceneDocument,
SHADER_SKY_AURORA_SCENE_DOCUMENT_VERSION
PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION
} from "../../src/document/scene-document";
import {
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
createPlayerStartEntity
} from "../../src/entities/entity-instances";
@@ -14,8 +15,8 @@ import {
serializeSceneDocument
} from "../../src/serialization/scene-document-json";
describe("Player Start interaction reach persistence", () => {
it("migrates legacy player starts without an authored interaction reach", () => {
describe("Player Start interaction sector persistence", () => {
it("migrates legacy player starts without an authored interaction sector", () => {
const playerStart = createPlayerStartEntity({
id: "entity-player-start-legacy"
});
@@ -24,10 +25,11 @@ describe("Player Start interaction reach persistence", () => {
} as Record<string, unknown>;
delete legacyPlayerStart.interactionReachMeters;
delete legacyPlayerStart.interactionAngleDegrees;
const migrated = migrateSceneDocument({
...createEmptySceneDocument({ name: "Legacy Reach Scene" }),
version: SHADER_SKY_AURORA_SCENE_DOCUMENT_VERSION,
version: PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION,
entities: {
[playerStart.id]: legacyPlayerStart
}
@@ -35,14 +37,16 @@ describe("Player Start interaction reach persistence", () => {
expect(migrated.entities[playerStart.id]).toMatchObject({
kind: "playerStart",
interactionReachMeters: DEFAULT_PLAYER_START_INTERACTION_REACH_METERS
interactionReachMeters: DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
interactionAngleDegrees: DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES
});
});
it("round-trips an authored interaction reach through scene JSON", () => {
it("round-trips authored interaction sector settings through scene JSON", () => {
const playerStart = createPlayerStartEntity({
id: "entity-player-start-round-trip",
interactionReachMeters: 3.4
interactionReachMeters: 3.4,
interactionAngleDegrees: 42
});
const document = {
...createEmptySceneDocument({ name: "Round Trip Reach Scene" }),
@@ -55,7 +59,8 @@ describe("Player Start interaction reach persistence", () => {
expect(parsed.entities[playerStart.id]).toMatchObject({
kind: "playerStart",
interactionReachMeters: 3.4
interactionReachMeters: 3.4,
interactionAngleDegrees: 42
});
});
});