use std::process::Command; #[test] fn cli_suggest_outputs_json_with_codes() { let out = Command::new(env!("CARGO_BIN_EXE_alpha-id")) .args(["suggest", "--mode", "c", "--json", "-"]) .arg("--config").arg("config/default.toml") .env("ALPHA_ID_STDIN", "Diabetes mellitus Typ 2") .output().unwrap(); assert!(out.status.success(), "stderr: {}", String::from_utf8_lossy(&out.stderr)); let s = String::from_utf8_lossy(&out.stdout); assert!(s.contains("\"icd_code\"")); assert!(s.contains("E11")); } /// The renamed canonical CLI token `--mode lexical` is accepted and the /// diagnostics line reports the new variant name `Lexical` (not the legacy `C`), /// confirming the enum rename reaches observable CLI output. #[test] fn cli_suggest_accepts_canonical_lexical_token() { let out = Command::new(env!("CARGO_BIN_EXE_alpha-id")) .args(["suggest", "--mode", "lexical", "-"]) .arg("--config").arg("config/default.toml") .env("ALPHA_ID_STDIN", "Diabetes mellitus Typ 2") .output().unwrap(); assert!(out.status.success(), "stderr: {}", String::from_utf8_lossy(&out.stderr)); let stdout = String::from_utf8_lossy(&out.stdout); assert!(stdout.contains("E11")); let stderr = String::from_utf8_lossy(&out.stderr); assert!(stderr.contains("mode Lexical"), "diagnostics should report canonical mode name; stderr: {stderr}"); }