harn-cli 0.10.20

CLI for the Harn programming language — run, test, REPL, format, and lint
use super::*;
use crate::cli::provider::ProviderToolProbeRequestProfileArg;

#[test]
fn test_parses_provider_tool_probe_audit_args() {
    let cli = Cli::parse_from([
        "harn",
        "provider",
        "tool-probe-audit",
        "--mode",
        "streaming",
        "--case",
        "parallel_tool_calls",
        "--request-profile",
        "parameter_edges",
        "--json=false",
    ]);
    let Command::Provider(provider) = cli.command.unwrap() else {
        panic!("expected provider command");
    };
    let ProviderCommand::ToolProbeAudit(args) = provider.command else {
        panic!("expected provider tool-probe-audit command");
    };
    assert!(matches!(args.mode, ProviderToolProbeModeArg::Streaming));
    assert_eq!(args.probe_cases.len(), 1);
    assert!(matches!(
        args.probe_cases[0],
        ProviderToolProbeCaseArg::ParallelToolCalls
    ));
    assert_eq!(args.request_profiles.len(), 1);
    assert!(matches!(
        args.request_profiles[0],
        ProviderToolProbeRequestProfileArg::ParameterEdges
    ));
    assert!(!args.json);
}