From c74bbb85109ebe6d296087f9f966b7e983ccad8d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 24 Apr 2026 23:56:47 +0000 Subject: [PATCH] test(marmot-interop): unwrap newer whitenoise-rs `groups show` shape MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Whitenoise-rs ≥ v0.2.x nests the group object one level deeper — `{"result": {"group": {...}}}` instead of `{"result": {...}}`. The two metadata-name pollers in tests 07 and 10 still asked for `.result.name` and silently saw the empty string, so even when wn-side `groups show` returned the correct new name the polling loops timed out: 07 metadata rename fail B saw name="" not "Interop-02-renamed" 10 concurrent commits fail diverged: A sees "race-from-amethyst", B sees "" Both queries now also peel a `.group` wrapper when present, leaving the older bare-`result` shape working too. Re-running the headless harness flips 07 + 10 from fail → pass; the remaining failures (09, 14, 15) are unrelated MLS-encryption / Remove-commit issues that need their own fix. https://claude.ai/code/session_013VYkpz8P1mPh9Ejxy9anhJ --- cli/tests/marmot/tests-extras.sh | 5 ++++- cli/tests/marmot/tests-manage.sh | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cli/tests/marmot/tests-extras.sh b/cli/tests/marmot/tests-extras.sh index d61e9a7330..fa602e656b 100644 --- a/cli/tests/marmot/tests-extras.sh +++ b/cli/tests/marmot/tests-extras.sh @@ -89,7 +89,10 @@ test_10_concurrent_commits() { sleep 10 local b_name - b_name=$(wn_b --json groups show "$mls_gid" 2>/dev/null | jq -r '(.result // .) | .name // empty') + # whitenoise-rs ≥ v0.2.x wraps the group payload one level deeper as + # `{"result": {"group": {…name…}}}`; the older shape was a bare group + # object under `.result`. Accept both. + b_name=$(wn_b --json groups show "$mls_gid" 2>/dev/null | jq -r '(.result // .) | (.group // .) | .name // empty') local a_name a_name=$(amy_field '.name' marmot group show "$gid" 2>/dev/null || echo "") diff --git a/cli/tests/marmot/tests-manage.sh b/cli/tests/marmot/tests-manage.sh index 7923811ab3..03763d4207 100644 --- a/cli/tests/marmot/tests-manage.sh +++ b/cli/tests/marmot/tests-manage.sh @@ -74,7 +74,11 @@ test_07_metadata_rename() { local deadline=$(( $(date +%s) + 120 )) seen="" while [[ $(date +%s) -lt $deadline ]]; do - seen=$(wn_b --json groups show "$mls_gid" 2>/dev/null | jq -r '(.result // .) | .name // empty') + # whitenoise-rs ≥ v0.2.x wraps the group payload one level deeper as + # `{"result": {"group": {…name…}}}`; older builds returned the bare + # group object under `.result`. Probe both shapes so the test survives + # either schema. + seen=$(wn_b --json groups show "$mls_gid" 2>/dev/null | jq -r '(.result // .) | (.group // .) | .name // empty') [[ "$seen" == "Interop-02-renamed" ]] && break sleep 3 done