test(sitecallaudit): await the upsert assertions in SingleTimestampSaturation — gating on CallCount alone races the async repo write under parallel suite load (one full-suite failure observed 2026-08-17; 3/3 green in isolation; row-95 fingerprint)
This commit is contained in:
+11
-2
@@ -492,8 +492,17 @@ public class SiteCallAuditReconciliationTests : TestKit
|
|||||||
interval: TimeSpan.FromMilliseconds(50));
|
interval: TimeSpan.FromMilliseconds(50));
|
||||||
|
|
||||||
// The rows it saw were still upserted (idempotent mirror refresh).
|
// The rows it saw were still upserted (idempotent mirror refresh).
|
||||||
Assert.True(repo.Upserted.ContainsKey(r1.TrackedOperationId));
|
// Awaited, not asserted flat: the upsert follows the pull asynchronously,
|
||||||
Assert.True(repo.Upserted.ContainsKey(r2.TrackedOperationId));
|
// so gating on CallCount alone races the repo write under parallel load
|
||||||
|
// (observed once in a full-suite run, 2026-08-17).
|
||||||
|
AwaitAssert(
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
Assert.True(repo.Upserted.ContainsKey(r1.TrackedOperationId));
|
||||||
|
Assert.True(repo.Upserted.ContainsKey(r2.TrackedOperationId));
|
||||||
|
},
|
||||||
|
duration: TimeSpan.FromSeconds(3),
|
||||||
|
interval: TimeSpan.FromMilliseconds(50));
|
||||||
|
|
||||||
// Critical SiteCallAudit-009 invariant: the within-tick drain BROKE on the
|
// Critical SiteCallAudit-009 invariant: the within-tick drain BROKE on the
|
||||||
// no-progress pin rather than looping to the 50-page ceiling. With a 2s
|
// no-progress pin rather than looping to the 50-page ceiling. With a 2s
|
||||||
|
|||||||
Reference in New Issue
Block a user