From f08452ff7c341e86dbaefd479ebc3255fbc06e95 Mon Sep 17 00:00:00 2001 From: Ignacio Duart Date: Wed, 6 May 2026 10:01:16 +0200 Subject: [PATCH] test(e2e): scope receiver-error regex to inbox/AFT failures (#81) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous regex matched `merge_rejected` and `execution error.*invalid contract update` broadly. Both fire on the web-container contract during benign stale-rebroadcast scenarios ("New state version N must be higher than current version N" — version equality), creating false-positive test failures unrelated to inbox/AFT. Tighten to explicit failure modes for the issues this assert was added to catch: #71 (AFT tier deser), #72 (inbox slot collision), plus generic inbox state deserialize panics. --- ui/tests/live-node.spec.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ui/tests/live-node.spec.ts b/ui/tests/live-node.spec.ts index 2e7b055..90ad01a 100644 --- a/ui/tests/live-node.spec.ts +++ b/ui/tests/live-node.spec.ts @@ -308,12 +308,20 @@ test.describe("Live node E2E", () => { // value (when the positive assert fails, the log grep tells // which layer failed) but the positive bob-receives check is // the gate. + // Scope to inbox/AFT failure modes only. Excludes web-container + // re-publish noise ("New state version N must be higher than + // current version N" — version equality is a benign stale + // rebroadcast on the WC contract, not an inbox bug). + // Targets: + // - #71: AFT tier deserialization (`missing field "tier"`) + // - #72: inbox slot-collision (`slot.*collision`, `delta_apply_failed`) + // - generic deserialize panics on inbox state const receiverErrors = grepPeerLog( - /execution error.*invalid contract update|merge_rejected|delta_apply_failed|missing field `tier`/, + /missing field `tier`|delta_apply_failed|slot.*collision|failed to deserialize.*Inbox|InboxUpdateError/, ); expect( receiverErrors, - "expected NO contract-side errors during cross-node delivery (#71/#72)", + "expected NO inbox/AFT contract-side errors during cross-node delivery (#71/#72)", ).toBe(false); expect( grepLog(/task .* panicked|missing related contract/),