()
| 300 | |
| 301 | #[test] |
| 302 | fn test_model_api_key_override() { |
| 303 | let provider = ProviderConfig { |
| 304 | name: "openai".to_string(), |
| 305 | api_key: Some("provider-key".to_string()), |
| 306 | base_url: Some("https://api.openai.com".to_string()), |
| 307 | headers: HashMap::new(), |
| 308 | session_id_header: None, |
| 309 | models: vec![ |
| 310 | ModelConfig { |
| 311 | id: "gpt-4".to_string(), |
| 312 | name: "GPT-4".to_string(), |
| 313 | family: "gpt".to_string(), |
| 314 | api_key: None, // Uses provider key |
| 315 | base_url: None, |
| 316 | headers: HashMap::new(), |
| 317 | session_id_header: None, |
| 318 | attachment: false, |
| 319 | reasoning: false, |
| 320 | tool_call: true, |
| 321 | temperature: true, |
| 322 | release_date: None, |
| 323 | modalities: ModelModalities::default(), |
| 324 | cost: ModelCost::default(), |
| 325 | limit: ModelLimit::default(), |
| 326 | }, |
| 327 | ModelConfig { |
| 328 | id: "custom-model".to_string(), |
| 329 | name: "Custom Model".to_string(), |
| 330 | family: "custom".to_string(), |
| 331 | api_key: Some("model-specific-key".to_string()), // Override |
| 332 | base_url: Some("https://custom.api.com".to_string()), // Override |
| 333 | headers: HashMap::new(), |
| 334 | session_id_header: None, |
| 335 | attachment: false, |
| 336 | reasoning: false, |
| 337 | tool_call: true, |
| 338 | temperature: true, |
| 339 | release_date: None, |
| 340 | modalities: ModelModalities::default(), |
| 341 | cost: ModelCost::default(), |
| 342 | limit: ModelLimit::default(), |
| 343 | }, |
| 344 | ], |
| 345 | }; |
| 346 | |
| 347 | // Model without override uses provider key |
| 348 | let model1 = provider.find_model("gpt-4").unwrap(); |
| 349 | assert_eq!(provider.get_api_key(model1), Some("provider-key")); |
| 350 | assert_eq!( |
| 351 | provider.get_base_url(model1), |
| 352 | Some("https://api.openai.com") |
| 353 | ); |
| 354 | |
| 355 | // Model with override uses its own key |
| 356 | let model2 = provider.find_model("custom-model").unwrap(); |
| 357 | assert_eq!(provider.get_api_key(model2), Some("model-specific-key")); |
| 358 | assert_eq!( |
| 359 | provider.get_base_url(model2), |
nothing calls this directly
no test coverage detected