UX-Tests: Alias-Gegenprobe ohne History-Mutation
This commit is contained in:
parent
ccf595de30
commit
1f2ca0179a
1 changed files with 8 additions and 4 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue