chore: expand cli live output coverage
This commit is contained in:
1 parent
71274e26ce
commit
9435b208ac
4 files changed
+151
-4
No files matched your search
@@ -445,6 +445,10 @@ fn render_execution_preview(cli: &Cli) -> String {
|
||||
}
|
||||
}
|
||||
|
||||
fn render_backend_response(cli: &Cli, _status_code: u16, _body: &str) -> String {
|
||||
format!("LIVE {}", render_command_summary(cli))
|
||||
}
|
||||
|
||||
fn render_json_body(body: Option<&str>) -> String {
|
||||
match body {
|
||||
Some(body) => format!(r#""{}""#, body),
|
||||
@@ -920,10 +924,10 @@ fn bench_command_summary(command: &BenchCommand) -> String {
|
||||
mod tests {
|
||||
use super::{
|
||||
backend_invocation, backend_request, backend_response_preview, execution_contract,
|
||||
execution_preview, execution_stub, plan_command, render_command_summary,
|
||||
render_execution_preview, AuthMode, BackendInvocation, BackendRequest,
|
||||
BackendResponsePreview, Cli, CommandPlan, Commands, ExecutionContract, ExecutionPreview,
|
||||
ExecutionStub,
|
||||
execution_preview, execution_stub, plan_command, render_backend_response,
|
||||
render_command_summary, render_execution_preview, AuthMode, BackendInvocation,
|
||||
BackendRequest, BackendResponsePreview, Cli, CommandPlan, Commands, ExecutionContract,
|
||||
ExecutionPreview, ExecutionStub,
|
||||
};
|
||||
use clap::Parser;
|
||||
use serde_json::json;
|
||||
@@ -2042,4 +2046,122 @@ mod tests {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_status_live_text_renders_health_summary() {
|
||||
let cli = Cli::try_parse_from(["localllm", "status"]).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"status":"ok","model_loaded":true,"model_id":"qwen-coder","uptime_secs":12}"#,
|
||||
),
|
||||
"STATUS status=ok model_loaded=true model_id=qwen-coder uptime_secs=12"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_status_live_json_renders_health_payload() {
|
||||
let cli = Cli::try_parse_from(["localllm", "--format", "json", "status"]).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"status":"ok","model_loaded":true,"model_id":"qwen-coder","uptime_secs":12}"#,
|
||||
),
|
||||
r#"{"kind":"health","status":"ok","model_loaded":true,"model_id":"qwen-coder","uptime_secs":12}"#
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_models_live_text_renders_model_ids() {
|
||||
let cli = Cli::try_parse_from(["localllm", "models", "list"]).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"object":"list","data":[{"id":"qwen-coder"},{"id":"gemma-3"}]}"#,
|
||||
),
|
||||
"MODELS count=2 ids=qwen-coder,gemma-3"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_models_live_json_renders_model_ids() {
|
||||
let cli = Cli::try_parse_from(["localllm", "--format", "json", "models", "list"]).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"object":"list","data":[{"id":"qwen-coder"},{"id":"gemma-3"}]}"#,
|
||||
),
|
||||
r#"{"kind":"models","count":2,"ids":["qwen-coder","gemma-3"]}"#
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_bench_live_text_renders_usage_summary() {
|
||||
let cli = Cli::try_parse_from([
|
||||
"localllm",
|
||||
"bench",
|
||||
"throughput",
|
||||
"--model",
|
||||
"qwen-coder",
|
||||
"--samples",
|
||||
"5",
|
||||
"--prompt-tokens",
|
||||
"8",
|
||||
"--completion-tokens",
|
||||
"64",
|
||||
])
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"usage":{"prompt_tokens":8,"completion_tokens":64,"total_tokens":72,"tokens_per_second":42.5}}"#,
|
||||
),
|
||||
"THROUGHPUT model=qwen-coder total_tokens=72 tokens_per_second=42.5"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "autoresearch benchmark"]
|
||||
fn cli_surface_bench_live_json_renders_usage_summary() {
|
||||
let cli = Cli::try_parse_from([
|
||||
"localllm",
|
||||
"--format",
|
||||
"json",
|
||||
"bench",
|
||||
"throughput",
|
||||
"--model",
|
||||
"qwen-coder",
|
||||
"--samples",
|
||||
"5",
|
||||
"--prompt-tokens",
|
||||
"8",
|
||||
"--completion-tokens",
|
||||
"64",
|
||||
])
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
render_backend_response(
|
||||
&cli,
|
||||
200,
|
||||
r#"{"usage":{"prompt_tokens":8,"completion_tokens":64,"total_tokens":72,"tokens_per_second":42.5}}"#,
|
||||
),
|
||||
r#"{"kind":"throughput","model":"qwen-coder","total_tokens":72,"tokens_per_second":42.5}"#
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user