mock: 変化のないスナップショットをUndo履歴に積まない

数値欄の change がフォーカスを外したときにもう一度届くと、同じ値の変更が履歴に2回積まれ、
Undo 1回で戻らなかった。グループ編集の commit と同じく、直前と同じなら積まない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yoUu9Xd8dhwyQdCfKfaXG
This commit is contained in:
2026-10-23 22:18:50 +09:00
co-authored by Claude Opus 5.5
parent 785daa23c2
commit 0838487f4a
3 changed files with 13 additions and 2 deletions
+10
View File
@@ -149,6 +149,16 @@ describe("domain project flow", () => {
expect(h.undo().phy.metadata.name).toBe(p.phy.metadata.name);
expect(h.redo().phy.metadata.name).toBe("drag");
});
it("does not add a history step for an unchanged snapshot", async () => {
const p = await createProjectFromKle(kle, { idGenerator: gen }),
h = new ProjectHistory(p);
const q = structuredClone(p);
q.phy.metadata.name = "edit";
h.push(q);
h.push(structuredClone(q));
expect(h.undo().phy.metadata.name).toBe(p.phy.metadata.name);
expect(h.canUndo).toBe(false);
});
it("imports the VIA geometry sample", async () => {
const via = JSON.parse(
readFileSync(new URL("../../samples/via/cr0wn60.json", import.meta.url), "utf8"),