cli

Command-line interface for Radroots
git clone https://radroots.dev/git/cli.git
Log | Files | Refs | README | LICENSE

commit 79d0d32b5cc23f1efefdc9ef0aae72001bad5bcb
parent ccade76249dc46f2464cf8a39a2cd1a8e721c7b9
Author: triesap <tyson@radroots.org>
Date:   Tue, 28 Apr 2026 12:53:19 +0000

tests: cover relay failure contracts

Diffstat:
Mtests/signer_runtime_modes.rs | 14++++++++++++++
Mtests/target_cli.rs | 50++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 54 insertions(+), 10 deletions(-)

diff --git a/tests/signer_runtime_modes.rs b/tests/signer_runtime_modes.rs @@ -763,6 +763,20 @@ fn local_seller_publish_commands_attempt_configured_direct_relay() { } #[test] +fn local_order_event_list_attempts_configured_direct_relay() { + let sandbox = RadrootsCliSandbox::new(); + sandbox.json_success(&["--format", "json", "account", "create"]); + let relay = "ws://127.0.0.1:9"; + + let (output, value) = sandbox.json_output(&[ + "--format", "json", "--relay", relay, "order", "event", "list", + ]); + + assert!(!output.status.success()); + assert_direct_relay_connection_failure(&value, "order.event.list", &["order", "event", "list"]); +} + +#[test] fn watch_only_farm_publish_dry_run_fails_as_account_watch_only() { let sandbox = RadrootsCliSandbox::new(); let public_identity = identity_public(13); diff --git a/tests/target_cli.rs b/tests/target_cli.rs @@ -506,18 +506,48 @@ fn listing_publish_invalid_draft_returns_validation_failure() { #[test] fn online_requires_relay_for_external_network_operations() { - let output = radroots() - .args(["--format", "json", "--online", "market", "refresh"]) - .output() - .expect("run online market refresh"); + for (operation_id, args) in [ + ( + "market.refresh", + ["--format", "json", "--online", "market", "refresh"].as_slice(), + ), + ( + "order.event.list", + ["--format", "json", "--online", "order", "event", "list"].as_slice(), + ), + ( + "order.event.watch", + [ + "--format", + "json", + "--online", + "order", + "event", + "watch", + "ord_missing", + ] + .as_slice(), + ), + ] { + let output = radroots() + .args(args) + .output() + .expect("run online external command"); - assert!(!output.status.success()); - let value: Value = serde_json::from_slice(&output.stdout).expect("json envelope"); + assert!(!output.status.success()); + let value: Value = serde_json::from_slice(&output.stdout).expect("json envelope"); - assert_eq!(value["operation_id"], "market.refresh"); - assert_eq!(value["result"], Value::Null); - assert_eq!(value["errors"][0]["code"], "network_unavailable"); - assert_eq!(value["errors"][0]["exit_code"], 8); + assert_eq!(value["operation_id"], operation_id); + assert_eq!(value["result"], Value::Null); + assert_eq!(value["errors"][0]["code"], "network_unavailable"); + assert_eq!(value["errors"][0]["exit_code"], 8); + assert!( + value["errors"][0]["message"] + .as_str() + .expect("message") + .contains("requires at least one configured relay") + ); + } } #[test]