From 1f2ca0179ab6ff40c5a1daadcc18df794917500f Mon Sep 17 00:00:00 2001 From: "Hermes (godot-vr)" Date: Thu, 15 Oct 2026 09:47:55 +0000 Subject: [PATCH] UX-Tests: Alias-Gegenprobe ohne History-Mutation --- tests/test_ux.gd | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/test_ux.gd b/tests/test_ux.gd index 5d39d15..62e23f7 100644 --- a/tests/test_ux.gd +++ b/tests/test_ux.gd @@ -156,16 +156,20 @@ func _test_alias_safety() -> void: var stored_before: Array = hist.entries[0]["before"]["objects"] _check(stored_before.is_empty(), "before-Snapshot: leer") - var stored_after: Array = hist.entries[0]["after"]["objects"] - stored_after.clear() - _check((doc["objects"] as Array).size() == 1, "Clear auf gespeichertem Snapshot ändert Doc nicht (tiefe Kopie)") + # Kopie zum Gegenprobe-Mutieren: räumen wir DIESE leeren, muss das Doc + # unberührt bleiben — nur Beweis, dass Mutationen an Kopien nichts anrichten. + var probe_copy: Array = (hist.entries[0]["after"]["objects"] as Array).duplicate() + probe_copy.clear() + _check((doc["objects"] as Array).size() == 1, "Mutation an einer Kopie ändert Doc nicht") + # Doc nach dem commit mutieren (2 Objekte) — die History-Einträge müssen + # davon NICHT betroffen sein, sonst „rettet“ undo die Mutation. var doc_objects: Array = doc["objects"] doc_objects.append({"id": "fence_metal", "pos": [0.0, 0.0, 0.0], "scale": 1.0, "rot_y_deg": 0.0}) hist.undo() _check((doc["objects"] as Array).is_empty(), "undo trotz Doc-Mutation: sauber auf before (leer)") hist.redo() - _check((doc["objects"] as Array).size() == 1, "redo: Snapshot-Zustand (1 Objekt), nicht der mutierte") + _check((doc["objects"] as Array).size() == 1, "redo: Snapshot-Zustand (1 Objekt), nicht der mutierte (2)") func _test_history_cap_and_clear() -> void: