(feat): add routstr as a declarative provider (#9175)
Signed-off-by: 9qeklajc <9qeklajc> Co-authored-by: 9qeklajc <9qeklajc>
This commit is contained in:
@@ -878,4 +878,31 @@ mod tests {
|
||||
let result = expand_env_vars("${TEST_EXPAND_OVERRIDE}/path", &env_vars).unwrap();
|
||||
assert_eq!(result, "https://from-env.com/path");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_routstr_json_deserializes() {
|
||||
let json = include_str!("../providers/declarative/routstr.json");
|
||||
let config: DeclarativeProviderConfig =
|
||||
serde_json::from_str(json).expect("routstr.json should parse");
|
||||
assert_eq!(config.name, "routstr");
|
||||
assert_eq!(config.display_name, "Routstr");
|
||||
assert!(matches!(config.engine, ProviderEngine::OpenAI));
|
||||
assert_eq!(config.api_key_env, "ROUTSTR_API_KEY");
|
||||
assert_eq!(config.base_url, "${ROUTSTR_HOST}/v1");
|
||||
assert_eq!(config.dynamic_models, Some(true));
|
||||
assert_eq!(config.supports_streaming, Some(true));
|
||||
assert!(config.skip_canonical_filtering);
|
||||
assert_eq!(config.models.len(), 6);
|
||||
|
||||
let env_vars = config.env_vars.as_ref().expect("env_vars should be set");
|
||||
assert_eq!(env_vars.len(), 1);
|
||||
assert_eq!(env_vars[0].name, "ROUTSTR_HOST");
|
||||
assert!(!env_vars[0].required);
|
||||
assert!(!env_vars[0].secret);
|
||||
assert_eq!(env_vars[0].primary, Some(true));
|
||||
assert_eq!(
|
||||
env_vars[0].default,
|
||||
Some("https://api.routstr.com".to_string())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user