fix: update admin tests for models_scraping/models_websearch split

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
master
oabrivard 3 months ago
parent de8e5ab85c
commit bb2209e425

@ -53,7 +53,9 @@ async fn non_admin_cannot_post_providers() {
let body = serde_json::json!({
"provider_name": "gemini",
"display_name": "Test",
"models": [{"model_id": "m1", "display_name": "Model 1"}]
"is_enabled": true,
"models_scraping": [{"model_id": "m1", "display_name": "Model 1"}],
"models_websearch": [{"model_id": "m1", "display_name": "Model 1"}]
});
let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session)
@ -170,10 +172,11 @@ async fn list_providers_returns_seeded_providers() {
assert!(names.contains(&"openai"), "Should contain openai");
assert!(names.contains(&"anthropic"), "Should contain anthropic");
// Each provider should have an id, models, and is_enabled
// Each provider should have an id, models_scraping, models_websearch, and is_enabled
for p in providers {
assert!(p["id"].is_string(), "Provider should have an id");
assert!(p["models"].is_array(), "Provider should have models array");
assert!(p["models_scraping"].is_array(), "Provider should have models_scraping array");
assert!(p["models_websearch"].is_array(), "Provider should have models_websearch array");
assert!(p["is_enabled"].is_boolean(), "Provider should have is_enabled flag");
}
}
@ -191,7 +194,9 @@ async fn create_provider_with_invalid_name_returns_422() {
let body = serde_json::json!({
"provider_name": "unknown_provider",
"display_name": "Unknown",
"models": [{"model_id": "m1", "display_name": "Model 1"}]
"is_enabled": true,
"models_scraping": [{"model_id": "m1", "display_name": "Model 1"}],
"models_websearch": [{"model_id": "m1", "display_name": "Model 1"}]
});
let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session)
@ -215,7 +220,9 @@ async fn create_provider_with_duplicate_name_returns_error() {
let body = serde_json::json!({
"provider_name": "gemini",
"display_name": "Google Gemini Duplicate",
"models": [{"model_id": "gemini-test", "display_name": "Gemini Test"}]
"is_enabled": true,
"models_scraping": [{"model_id": "gemini-test", "display_name": "Gemini Test"}],
"models_websearch": [{"model_id": "gemini-test", "display_name": "Gemini Test"}]
});
let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session)
@ -255,7 +262,10 @@ async fn update_provider_changes_display_name_and_models() {
// Update display_name and models
let update_body = serde_json::json!({
"display_name": "Google Gemini Updated",
"models": [
"models_scraping": [
{"model_id": "gemini-3.0-pro", "display_name": "Gemini 3.0 Pro", "is_default": true}
],
"models_websearch": [
{"model_id": "gemini-3.0-pro", "display_name": "Gemini 3.0 Pro", "is_default": true}
]
});
@ -266,8 +276,8 @@ async fn update_provider_changes_display_name_and_models() {
assert_eq!(status, StatusCode::OK, "Update should return 200");
assert_eq!(resp["display_name"], "Google Gemini Updated");
assert_eq!(resp["models"].as_array().unwrap().len(), 1);
assert_eq!(resp["models"][0]["model_id"], "gemini-3.0-pro");
assert_eq!(resp["models_scraping"].as_array().unwrap().len(), 1);
assert_eq!(resp["models_scraping"][0]["model_id"], "gemini-3.0-pro");
}
#[tokio::test]
@ -397,7 +407,9 @@ async fn create_provider_with_empty_models_returns_422() {
let body = serde_json::json!({
"provider_name": "openai",
"display_name": "OpenAI",
"models": []
"is_enabled": true,
"models_scraping": [],
"models_websearch": []
});
let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session)
@ -435,7 +447,11 @@ async fn create_provider_returns_with_id() {
let body = serde_json::json!({
"provider_name": "openai",
"display_name": "OpenAI Fresh",
"models": [
"is_enabled": true,
"models_scraping": [
{"model_id": "gpt-4o", "display_name": "GPT-4o", "is_default": true}
],
"models_websearch": [
{"model_id": "gpt-4o", "display_name": "GPT-4o", "is_default": true}
]
});
@ -447,7 +463,7 @@ async fn create_provider_returns_with_id() {
assert!(resp["id"].is_string(), "Response should have an id");
assert_eq!(resp["provider_name"], "openai");
assert_eq!(resp["display_name"], "OpenAI Fresh");
assert_eq!(resp["models"].as_array().unwrap().len(), 1);
assert_eq!(resp["models_scraping"].as_array().unwrap().len(), 1);
assert_eq!(resp["is_enabled"], true);
}
@ -756,11 +772,11 @@ async fn config_providers_with_auth_returns_enabled() {
assert!(providers.len() >= 3, "Should have at least 3 enabled providers");
// Verify the structure: should NOT have admin-only fields like `id` at root
// (actually this endpoint returns provider_name, display_name, models)
// (actually this endpoint returns provider_name, display_name, models_scraping, models_websearch)
for p in providers {
assert!(p["provider_name"].is_string());
assert!(p["display_name"].is_string());
assert!(p["models"].is_array());
assert!(p["models_scraping"].is_array() || p["models_websearch"].is_array());
}
}
@ -867,7 +883,9 @@ async fn audit_log_created_on_provider_creation() {
let body = serde_json::json!({
"provider_name": "openai",
"display_name": "OpenAI Audit Test",
"models": [{"model_id": "gpt-4o", "display_name": "GPT-4o"}]
"is_enabled": true,
"models_scraping": [{"model_id": "gpt-4o", "display_name": "GPT-4o"}],
"models_websearch": [{"model_id": "gpt-4o", "display_name": "GPT-4o"}]
});
let (status, _) = app
.post_with_session("/api/v1/admin/providers", &body, &session)

Loading…
Cancel
Save