From bca8a70a5ae3fabc527da34a731a2a2363252685 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 16 Oct 2026 00:44:28 +0200 Subject: [PATCH] cultnet-rs: decode_door credential test spells the envelope as a map with one unknown key Co-Authored-By: Claude Opus 5.5 --- packages/cultnet-rs/tests/decode_door.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/cultnet-rs/tests/decode_door.rs b/packages/cultnet-rs/tests/decode_door.rs index 4d58a6a9..29488503 100644 --- a/packages/cultnet-rs/tests/decode_door.rs +++ b/packages/cultnet-rs/tests/decode_door.rs @@ -336,11 +336,18 @@ fn identity_credential_with_deep_key_is_refused_on_a_small_thread() { let rmpv::Value::Array(items) = &mut envelopes else { panic!("credential is an array"); }; - // The writer encodes an envelope positionally; one slot more is the unknown one. - let rmpv::Value::Array(envelope) = &mut items[0] else { + // The writer encodes an envelope positionally; the reader also takes the named map form, + // where an unknown key is skipped, so the test spells the envelope that way plus one key. + let rmpv::Value::Array(slots) = std::mem::replace(&mut items[0], rmpv::Value::Nil) else { panic!("envelope is a positional array"); }; - envelope.push("DEEP".into()); + let mut named: Vec<(rmpv::Value, rmpv::Value)> = ["key", "type", "payload", "storedAt", "schemaId"] + .into_iter() + .map(rmpv::Value::from) + .zip(slots) + .collect(); + named.push(("zz".into(), "DEEP".into())); + items[0] = rmpv::Value::Map(named); let credential = rmp_serde::to_vec(&envelopes).unwrap(); for levels in [1000, 250] { let bytes = splice(credential.clone(), &nested(levels));