diff --git a/test/e2e.py b/test/e2e.py index f6000b7..cadd852 100644 --- a/test/e2e.py +++ b/test/e2e.py @@ -95,6 +95,9 @@ def main() -> int: check("bob reads the message", "hello bob" in bob_read, bob_read) check("bob sees alice's key", alice_pub in bob_read) check("signature verifies", "signature verified" in bob_read) + # the reference client now emits its signed reply address by default + check("reference client emits the signed reply address", + "reply-to: smol://alice@" in bob_read, bob_read) # --- JS client replies, through the bridge's WebSocket relay ws_env = dict(os.environ, GSMOL_TRANSPORT="ws", GSMOL_BRIDGE=f"ws://127.0.0.1:{bridge_port}") @@ -117,9 +120,15 @@ def main() -> int: new_key = re.search(r"new key: (\S+)", bob_rotated).group(1) resolved = run(alice + ["resolve", f"bob@{host}"]) check("chain confirms the rotation", "a signed chain confirms it" in resolved, resolved) - run(alice + ["send", f"bob@{host}", "--subject", "post-rotation", "--body", "still here"]) + run(alice + ["send", f"bob@{host}", "--subject", "post-rotation", "--body", "still here", + "--anonymous"]) print(run(bob + ["fetch"]).strip()) - check("bob reads mail addressed to the new key", "post-rotation" in run(bob + ["list"])) + bob_list = run(bob + ["list"]) + check("bob reads mail addressed to the new key", "post-rotation" in bob_list) + # --anonymous omits the reply address; the field list must show none + post_read = run(bob + ["read", re.search(r"([0-9a-f]{8}) .*post-rotation", + bob_list).group(1)]) + check("--anonymous omits the reply address", "reply-to:" not in post_read, post_read) print(f"\n{len(failures)} failure(s)" + (f": {failures}" if failures else "")) return 1 if failures else 0