cli

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

target_cli.rs (1542B)


      1 use assert_cmd::Command;
      2 use serde_json::Value;
      3 
      4 fn radroots() -> Command {
      5     Command::cargo_bin("radroots").expect("radroots binary")
      6 }
      7 
      8 #[test]
      9 fn help_exposes_the_resource_command_tree() {
     10     let output = radroots().arg("--help").output().expect("help output");
     11     assert!(output.status.success());
     12     let stdout = String::from_utf8(output.stdout).expect("UTF-8 help");
     13     assert!(stdout.contains("health"));
     14     assert!(stdout.contains("profile"));
     15 }
     16 
     17 #[test]
     18 fn health_uses_the_registry_backed_facade() {
     19     let output = radroots()
     20         .args(["health", "inspect", "--format", "json"])
     21         .output()
     22         .expect("health output");
     23     assert!(output.status.success());
     24     let value: Value = serde_json::from_slice(&output.stdout).expect("JSON envelope");
     25     assert_eq!(value["schema"], "radroots.cli.output.v1");
     26     assert_eq!(value["operation_id"], "health.inspect");
     27     assert_eq!(value["status"], "ok");
     28     assert_eq!(value["data"]["ready"], true);
     29     assert_eq!(value["data"]["profile"]["artifact_graph"], "registry");
     30 }
     31 
     32 #[test]
     33 fn retired_runtime_operations_fail_closed() {
     34     let output = radroots()
     35         .args(["account", "list", "--format", "json"])
     36         .output()
     37         .expect("account output");
     38     assert_eq!(output.status.code(), Some(2));
     39     let value: Value = serde_json::from_slice(&output.stdout).expect("JSON envelope");
     40     assert_eq!(value["operation_id"], "account.list");
     41     assert_eq!(value["status"], "error");
     42     assert_eq!(value["error"]["code"], "unsupported_operation");
     43 }