use gate4agent::{CliTool, SpawnOptions, TransportSession};
#[test]
fn all_cli_tool_variants_are_accessible() {
let tools = [
CliTool::ClaudeCode,
CliTool::Codex,
CliTool::Gemini,
CliTool::Cursor,
CliTool::OpenCode,
];
assert_eq!(tools.len(), 5);
}
#[test]
fn spawn_options_with_resume_id() {
let opts = SpawnOptions {
resume_session_id: Some("ses_1234".to_string()),
..SpawnOptions::default()
};
assert_eq!(opts.resume_session_id.as_deref(), Some("ses_1234"));
assert!(opts.prompt.is_empty());
assert!(opts.model.is_none());
}
#[test]
fn transport_session_is_public_type() {
let _: fn() -> std::pin::Pin<Box<dyn std::future::Future<Output = _>>> = || {
Box::pin(async {
let dir = std::path::Path::new(".");
let result = TransportSession::spawn(
CliTool::ClaudeCode,
dir,
"hello",
SpawnOptions::default(),
)
.await;
result
})
};
}
#[test]
fn transport_session_public_methods_exist() {
fn _assert_api_exists() {
async fn _check(session: TransportSession) -> &'static str {
let _rx = session.subscribe();
let _sid: &str = session.session_id();
let _ = session.send_prompt("test").await;
let _ = session.kill().await;
"ok"
}
}
}