test(importing): verify re-import pruning and provisional precedence on real Postgres
Add a Testcontainers test that re-imports a document with a receiver and a tag removed from the canonical row and asserts both links are pruned. Add a test that a register person referenced by a document row is never flipped to provisional, regardless of re-import, since the orchestrator loads the register/tree before documents and the monotonic-downward guard prevents a flip. Pin that cross-loader precedence in a mergeCanonical comment. Refs #669 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -168,7 +168,12 @@ public class PersonService {
|
||||
if (cmd.personType() != null && existing.getPersonType() == PersonType.PERSON) {
|
||||
existing.setPersonType(cmd.personType());
|
||||
}
|
||||
// provisional is monotonic: once a human confirms a person (false) it never reverts.
|
||||
// provisional is monotonic-downward: once it is false it never reverts to true.
|
||||
// This also pins the cross-loader precedence (ADR-025): a register/tree person is
|
||||
// loaded before documents and already false, so a later document row that references
|
||||
// the same source_ref (provisional=true) can never flip it provisional — the guard
|
||||
// below only fires while existing is still provisional. Order of document rows is
|
||||
// therefore irrelevant.
|
||||
if (existing.isProvisional()) {
|
||||
existing.setProvisional(cmd.provisional());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user