144 lines
4.4 KiB
Rust
144 lines
4.4 KiB
Rust
use serde_json::json;
|
|
use warp_cli::{
|
|
artifact::{ArtifactCommand, DownloadArtifactArgs, GetArtifactArgs, UploadArtifactArgs},
|
|
task::{MessageCommand, MessageSendArgs, MessageWatchArgs, TaskCommand},
|
|
CliCommand,
|
|
};
|
|
use warp_core::telemetry::TelemetryEvent;
|
|
|
|
use super::{command_requires_auth, command_to_telemetry_event};
|
|
|
|
#[test]
|
|
fn logout_does_not_require_auth() {
|
|
assert!(!command_requires_auth(&CliCommand::Logout));
|
|
}
|
|
|
|
#[test]
|
|
fn login_does_not_require_auth() {
|
|
assert!(!command_requires_auth(&CliCommand::Login));
|
|
}
|
|
|
|
#[test]
|
|
fn artifact_download_requires_auth() {
|
|
assert!(command_requires_auth(&CliCommand::Artifact(
|
|
ArtifactCommand::Download(DownloadArtifactArgs {
|
|
artifact_uid: "artifact-123".to_string(),
|
|
out: None,
|
|
},)
|
|
)));
|
|
}
|
|
|
|
#[test]
|
|
fn run_message_send_requires_auth() {
|
|
assert!(command_requires_auth(&CliCommand::Run(
|
|
TaskCommand::Message(MessageCommand::Send(MessageSendArgs {
|
|
to: vec!["run-456".to_string()],
|
|
subject: "subject".to_string(),
|
|
body: "body".to_string(),
|
|
sender_run_id: "run-123".to_string(),
|
|
}),)
|
|
)));
|
|
}
|
|
|
|
#[test]
|
|
fn artifact_get_requires_auth() {
|
|
assert!(command_requires_auth(&CliCommand::Artifact(
|
|
ArtifactCommand::Get(GetArtifactArgs {
|
|
artifact_uid: "artifact-123".to_string(),
|
|
},)
|
|
)));
|
|
}
|
|
|
|
#[test]
|
|
fn artifact_upload_requires_auth() {
|
|
assert!(command_requires_auth(&CliCommand::Artifact(
|
|
ArtifactCommand::Upload(UploadArtifactArgs {
|
|
path: "artifact.txt".into(),
|
|
run_id: Some("run-123".to_string()),
|
|
conversation_id: None,
|
|
description: None,
|
|
},)
|
|
)));
|
|
}
|
|
|
|
#[test]
|
|
#[serial_test::serial]
|
|
fn run_message_send_telemetry_uses_canonical_harness_from_env() {
|
|
std::env::set_var("OZ_HARNESS", " CLAUDE ");
|
|
let event = command_to_telemetry_event(&CliCommand::Run(TaskCommand::Message(
|
|
MessageCommand::Send(MessageSendArgs {
|
|
to: vec!["run-456".to_string()],
|
|
subject: "subject".to_string(),
|
|
body: "body".to_string(),
|
|
sender_run_id: "run-123".to_string(),
|
|
}),
|
|
)));
|
|
std::env::remove_var("OZ_HARNESS");
|
|
|
|
assert_eq!(event.payload(), Some(json!({ "harness": "claude" })));
|
|
}
|
|
|
|
#[test]
|
|
#[serial_test::serial]
|
|
fn run_message_send_telemetry_supports_claude_code_alias() {
|
|
std::env::set_var("OZ_HARNESS", "CLAUDE_CODE");
|
|
let event = command_to_telemetry_event(&CliCommand::Run(TaskCommand::Message(
|
|
MessageCommand::Send(MessageSendArgs {
|
|
to: vec!["run-456".to_string()],
|
|
subject: "subject".to_string(),
|
|
body: "body".to_string(),
|
|
sender_run_id: "run-123".to_string(),
|
|
}),
|
|
)));
|
|
std::env::remove_var("OZ_HARNESS");
|
|
|
|
assert_eq!(event.payload(), Some(json!({ "harness": "claude" })));
|
|
}
|
|
|
|
#[test]
|
|
#[serial_test::serial]
|
|
fn run_message_send_telemetry_supports_opencode_harness() {
|
|
std::env::set_var("OZ_HARNESS", "opencode");
|
|
let event = command_to_telemetry_event(&CliCommand::Run(TaskCommand::Message(
|
|
MessageCommand::Send(MessageSendArgs {
|
|
to: vec!["run-456".to_string()],
|
|
subject: "subject".to_string(),
|
|
body: "body".to_string(),
|
|
sender_run_id: "run-123".to_string(),
|
|
}),
|
|
)));
|
|
std::env::remove_var("OZ_HARNESS");
|
|
|
|
assert_eq!(event.payload(), Some(json!({ "harness": "opencode" })));
|
|
}
|
|
|
|
#[test]
|
|
#[serial_test::serial]
|
|
fn run_message_send_telemetry_defaults_to_unknown_harness() {
|
|
std::env::remove_var("OZ_HARNESS");
|
|
let event = command_to_telemetry_event(&CliCommand::Run(TaskCommand::Message(
|
|
MessageCommand::Send(MessageSendArgs {
|
|
to: vec!["run-456".to_string()],
|
|
subject: "subject".to_string(),
|
|
body: "body".to_string(),
|
|
sender_run_id: "run-123".to_string(),
|
|
}),
|
|
)));
|
|
|
|
assert_eq!(event.payload(), Some(json!({ "harness": "unknown" })));
|
|
}
|
|
|
|
#[test]
|
|
#[serial_test::serial]
|
|
fn run_message_watch_telemetry_defaults_to_unknown_harness() {
|
|
std::env::remove_var("OZ_HARNESS");
|
|
let event = command_to_telemetry_event(&CliCommand::Run(TaskCommand::Message(
|
|
MessageCommand::Watch(MessageWatchArgs {
|
|
run_id: "run-123".to_string(),
|
|
since_sequence: 0,
|
|
}),
|
|
)));
|
|
|
|
assert_eq!(event.payload(), Some(json!({ "harness": "unknown" })));
|
|
}
|