use steer_core::api::Model;
use steer_core::app::conversation::{AssistantContent, Message, MessageData, UserContent};
#[tokio::test]
#[ignore]
async fn test_headless_mode_integration() {
dotenv::dotenv().ok();
let timestamp = Message::current_timestamp();
let messages = vec![Message {
data: MessageData::User {
content: vec![UserContent::Text {
text: "What is 2+2?".to_string(),
}],
},
timestamp,
id: Message::generate_id("user", timestamp),
parent_message_id: None,
}];
let result = steer_cli::run_once(messages, Model::Claude3_7Sonnet20250219)
.await
.expect("run_once should succeed");
assert!(
matches!(result.final_message.data, MessageData::Assistant { .. }),
"Expected Assistant message in response"
);
if let MessageData::Assistant { content, .. } = &result.final_message.data {
let text_blocks: Vec<_> = content
.iter()
.filter_map(|c| {
if let AssistantContent::Text { text } = c {
Some(text)
} else {
None
}
})
.collect();
assert!(!text_blocks.is_empty(), "No text blocks found in response");
let contains_answer = text_blocks.iter().any(|text| text.contains("4"));
assert!(contains_answer, "Response should contain the answer '4'");
}
}