use paladin::core::base::entity::node::Node;
use paladin::core::platform::container::paladin::MaxLoops;
use paladin::{BattalionConfig, BattalionError, PaladinConfig, PaladinData, PaladinStatus};
#[test]
fn test_paladin_data_constructs_without_cli() {
let data = PaladinData {
name: "TestPaladin".to_string(),
user_name: "test_user".to_string(),
system_prompt: "You are a test assistant.".to_string(),
model: "gpt-4".to_string(),
temperature: 0.7,
max_loops: MaxLoops::Fixed(3),
stop_words: vec!["DONE".to_string()],
status: PaladinStatus::Idle,
vision_enabled: false,
autonomous_planning: false,
autonomous_prompts: false,
agent_description: String::new(),
dynamic_temperature: false,
};
assert_eq!(data.name, "TestPaladin");
assert!(!data.system_prompt.is_empty());
}
#[test]
fn test_paladin_config_default_without_cli() {
let _config = PaladinConfig::default();
}
#[test]
fn test_paladin_status_variants_without_cli() {
let _idle = PaladinStatus::Idle;
let _completed = PaladinStatus::Completed;
let _failed = PaladinStatus::Failed("reason".to_string());
let _reasoning = PaladinStatus::Reasoning;
let _executing = PaladinStatus::Executing;
}
#[test]
fn test_battalion_config_default_without_cli() {
let _config = BattalionConfig::default();
}
#[test]
fn test_battalion_error_variants_without_cli() {
let err = BattalionError::FormationError("test error".to_string());
let msg = err.to_string();
assert!(
msg.contains("test error"),
"BattalionError must format without CLI"
);
}
#[test]
fn test_battalion_error_configuration_variant_without_cli() {
let err = BattalionError::ConfigurationError("bad config".to_string());
let msg = err.to_string();
assert!(msg.contains("bad config"));
}
#[test]
fn test_node_pattern_accessible_without_cli() {
let data = PaladinData {
name: "NodeTest".to_string(),
user_name: "u".to_string(),
system_prompt: "s".to_string(),
model: "m".to_string(),
temperature: 0.5,
max_loops: MaxLoops::Fixed(1),
stop_words: vec![],
status: PaladinStatus::Idle,
vision_enabled: false,
autonomous_planning: false,
autonomous_prompts: false,
agent_description: String::new(),
dynamic_temperature: false,
};
let paladin = Node::new(data, Some("NodeTest".to_string()));
assert_eq!(paladin.node.name, "NodeTest");
}
#[test]
fn test_max_loops_variants_without_cli() {
let fixed = MaxLoops::Fixed(5);
let auto = MaxLoops::Auto { max_subtasks: 10 };
assert!(fixed.is_fixed());
assert!(auto.is_auto());
assert_eq!(fixed.as_u32(), 5);
assert_eq!(auto.as_u32(), 10);
}
#[test]
fn test_cli_feature_is_not_default() {
#[cfg(feature = "cli")]
panic!(
"The `cli` feature is enabled during a library-only test run. \
Check that `cli` is NOT listed in the `default` feature set in Cargo.toml."
);
}