Files
baibot-withmcp/src/controller/agent/create/tests.rs

62 lines
1.9 KiB
Rust
Raw Normal View History

2024-09-12 13:44:06 +03:00
#[test]
fn agent_config_parsing_works() {
struct TestCase {
input: String,
expected: Option<serde_yaml_ng::Value>,
2024-09-12 13:44:06 +03:00
}
let provider = crate::agent::AgentProvider::OpenAI;
let sample_config = crate::agent::default_config_for_provider(&provider);
let sample_config_pretty_yaml = serde_yaml_ng::to_string(&sample_config).unwrap();
2024-09-12 13:44:06 +03:00
let test_cases = [
2024-09-12 13:44:06 +03:00
// Invalid input
TestCase {
input: r#"Hello"#.to_owned(),
expected: None,
},
// Plain text
TestCase {
input: sample_config_pretty_yaml.clone(),
expected: Some(sample_config.clone()),
},
// Generic code block
TestCase {
input: format!("```\n{}```", sample_config_pretty_yaml),
expected: Some(sample_config.clone()),
},
// YAML code block (yaml)
TestCase {
input: format!("```yaml\n{}```", sample_config_pretty_yaml),
expected: Some(sample_config.clone()),
},
// YAML code block (yml)
TestCase {
input: format!("```yml\n{}```", sample_config_pretty_yaml),
expected: Some(sample_config.clone()),
},
// JSON code block
TestCase {
input: format!("```json\n{}```", sample_config_pretty_yaml),
expected: None,
},
];
for (i, test_case) in test_cases.iter().enumerate() {
let result = super::parse_from_message_to_yaml_value(&test_case.input);
match result {
Ok(config) => {
assert_eq!(
config,
test_case.expected.clone().unwrap(),
"Test case {} failed",
i
);
}
Err(_) => {
assert_eq!(test_case.expected, None, "Test case {} failed", i);
}
}
}
}