fix(core): preserve data integrity and bound shared UI and response work
Module Package Release / publish-packages (push) Successful in 13s

Release v0.1.46. Coordinated integrity review: GovOPlaN/govoplan-core#298.
This commit is contained in:
2026-09-08 12:30:38 +02:00
parent dc1f244f17
commit 6591aaa3fd
33 changed files with 1889 additions and 114 deletions
+19
View File
@@ -27,6 +27,25 @@ class _RevisionFixture(Base):
class OptimisticConcurrencyTests(unittest.TestCase):
def test_keyed_insertions_keep_their_anchors_during_disjoint_edits(self) -> None:
base = [{"id": "a", "value": 1}, {"id": "b", "value": 2}]
local = [base[0], {"id": "x", "value": 3}, base[1]]
current = [base[0], {"id": "b", "value": 20}]
result = three_way_merge(base, local, current)
self.assertTrue(result.merged)
self.assertEqual(["a", "x", "b"], [item["id"] for item in result.value])
self.assertEqual(20, result.value[-1]["value"])
self.assertEqual(["a", "b"], [item["id"] for item in base])
def test_concurrent_insertions_are_stable_and_incompatible_anchors_conflict(self) -> None:
base = [{"id": "a"}, {"id": "b"}]
result = three_way_merge(base, [base[0], {"id": "x"}, base[1]], [base[0], {"id": "y"}, base[1]])
self.assertTrue(result.merged)
self.assertEqual(["a", "y", "x", "b"], [item["id"] for item in result.value])
conflict = three_way_merge(base, [base[0], {"id": "x"}, base[1]], [base[1], base[0]])
self.assertFalse(conflict.merged)
self.assertEqual("collection_reorder", conflict.conflicts[0].kind)
def test_strong_etags_and_if_match_use_strong_comparison(self) -> None:
etag = strong_resource_etag("campaign_version", "version-1", 3)