Files
harbor-net/docs/product/data-consistency-regressions.md
Dmitriy Petrov 2a214fc28b
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 13s
Build and Deploy Gateway / deploy (push) Successful in 6s
Clarify and strengthen state invariant tests
2026-07-12 12:22:59 +03:00

1.5 KiB

Data consistency regression suite

npm test is the required fast regression gate. It uses generated fixtures, temporary directories, loopback HTTP servers and a fake sing-box executable; it does not require internet, root or an installed sing-box.

The protected invariants are:

Invariant Regression coverage
One backend canonical snapshot owns servers and desired/applied selection test/data-consistency-regression.test.js, test/server/state-contract.test.js
Revisions increase and an older response cannot replace newer state test/server/state-contract.test.js, test/web/harbor-state.test.js
Provider failure, parser failure and runtime failure do not partially commit subscription state test/server/state-contract.test.js
Atomic write failure preserves the last file and corrupt JSON preserves its original bytes test/server/state-store.test.js
Legacy state migrates with an explicit result for ambiguous selection test/server/state-store.test.js
Stable IDs survive reorder and duplicate labels for 1, 30 and 300 servers test/data-consistency-regression.test.js, test/server/subscription.test.js
Initial control outage does not invent domain state; repeated failures retain and mark the last snapshot stale test/web/harbor-state.test.js

Fixtures are generated in test code to keep the suite small and deterministic. Packet-level networking, browser screenshots and accessibility automation are intentionally deferred to their dedicated roadmap tasks.