use super::*;
#[test]
fn persona_provider_env_maps_backend_and_optional_model() {
let p = newt_core::RoleProfile::parse(
"+++\nrole = \"researcher\"\nbackend = \"sol\"\nmodel = \"gpt-5.6-sol\"\n+++\n\n# Bob\n",
)
.unwrap();
assert_eq!(
persona_provider_env(Some(&p)),
Some(("sol".to_string(), Some("gpt-5.6-sol".to_string())))
);
let p2 = newt_core::RoleProfile::parse("+++\nbackend = \"sol\"\n+++\n\n# B\n").unwrap();
assert_eq!(
persona_provider_env(Some(&p2)),
Some(("sol".to_string(), None))
);
let p3 = newt_core::RoleProfile::parse("+++\ncognition = \"rational\"\n+++\n\n# T\n").unwrap();
assert_eq!(persona_provider_env(Some(&p3)), None);
assert_eq!(persona_provider_env(None), None);
}
#[test]
fn persona_backend_route_validates_known_reverts_none_and_refuses_unknown() {
let configured = ["sol", "openai"];
let p = newt_core::RoleProfile::parse(
"+++\nbackend = \"sol\"\nmodel = \"gpt-5.6-sol\"\n+++\n\n# B\n",
)
.unwrap();
assert_eq!(
persona_backend_route(Some(&p), &configured),
Ok(Some(("sol".to_string(), Some("gpt-5.6-sol".to_string()))))
);
let p2 = newt_core::RoleProfile::parse("+++\nbackend = \"openai\"\n+++\n\n# B\n").unwrap();
assert_eq!(
persona_backend_route(Some(&p2), &configured),
Ok(Some(("openai".to_string(), None)))
);
let p3 = newt_core::RoleProfile::parse("+++\nbackend = \"ghost\"\n+++\n\n# B\n").unwrap();
assert_eq!(
persona_backend_route(Some(&p3), &configured),
Err("ghost".to_string())
);
let p4 = newt_core::RoleProfile::parse("+++\ncognition = \"rational\"\n+++\n\n# T\n").unwrap();
assert_eq!(persona_backend_route(Some(&p4), &configured), Ok(None));
assert_eq!(persona_backend_route(None, &configured), Ok(None));
}