Files
webeditor3d/tests/domain/project-time-settings.command.test.ts

35 lines
1.3 KiB
TypeScript
Raw Normal View History

import { describe, expect, it } from "vitest";
import { createEditorStore } from "../../src/app/editor-store";
import { createSetProjectTimeSettingsCommand } from "../../src/commands/set-project-time-settings-command";
import { cloneProjectTimeSettings } from "../../src/document/project-time-settings";
describe("createSetProjectTimeSettingsCommand", () => {
it("updates project time settings and restores them through undo", () => {
const store = createEditorStore();
const originalTime = cloneProjectTimeSettings(
store.getState().projectDocument.time
);
const nextTime = cloneProjectTimeSettings(originalTime);
nextTime.startDayNumber = 4;
nextTime.startTimeOfDayHours = 18.5;
nextTime.dayLengthMinutes = 12;
nextTime.sunriseTimeOfDayHours = 5.75;
nextTime.sunsetTimeOfDayHours = 20.25;
nextTime.dawnDurationHours = 1.5;
store.executeCommand(
createSetProjectTimeSettingsCommand({
label: "Set project time",
time: nextTime
})
);
expect(store.getState().projectDocument.time).toEqual(nextTime);
expect(store.getState().document.time).toEqual(nextTime);
expect(store.undo()).toBe(true);
expect(store.getState().projectDocument.time).toEqual(originalTime);
expect(store.getState().document.time).toEqual(originalTime);
});
});