35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
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);
|
|
});
|
|
}); |