provider_tests.rs

 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}