1use std::sync::Arc;
2
3use pretty_assertions::assert_eq;
4
5use crate::llm::db::LlmDatabase;
6use crate::test_both_llm_dbs;
7
8test_both_llm_dbs!(
9 test_initialize_providers,
10 test_initialize_providers_postgres,
11 test_initialize_providers_sqlite
12);
13
14async fn test_initialize_providers(db: &Arc<LlmDatabase>) {
15 let initial_providers = db.list_providers().await.unwrap();
16 assert_eq!(initial_providers, vec![]);
17
18 db.initialize_providers().await.unwrap();
19
20 // Do it twice, to make sure the operation is idempotent.
21 db.initialize_providers().await.unwrap();
22
23 let providers = db.list_providers().await.unwrap();
24
25 let provider_names = providers
26 .into_iter()
27 .map(|provider| provider.name)
28 .collect::<Vec<_>>();
29 assert_eq!(provider_names, vec!["anthropic".to_string()]);
30}