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!({ let body = serde_json::json!({
"provider_name": "gemini", "provider_name": "gemini",
"display_name": "Test", "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 let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session) .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(&"openai"), "Should contain openai");
assert!(names.contains(&"anthropic"), "Should contain anthropic"); 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 { for p in providers {
assert!(p["id"].is_string(), "Provider should have an id"); 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"); 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!({ let body = serde_json::json!({
"provider_name": "unknown_provider", "provider_name": "unknown_provider",
"display_name": "Unknown", "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 let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session) .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!({ let body = serde_json::json!({
"provider_name": "gemini", "provider_name": "gemini",
"display_name": "Google Gemini Duplicate", "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 let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session) .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 // Update display_name and models
let update_body = serde_json::json!({ let update_body = serde_json::json!({
"display_name": "Google Gemini Updated", "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} {"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!(status, StatusCode::OK, "Update should return 200");
assert_eq!(resp["display_name"], "Google Gemini Updated"); assert_eq!(resp["display_name"], "Google Gemini Updated");
assert_eq!(resp["models"].as_array().unwrap().len(), 1); assert_eq!(resp["models_scraping"].as_array().unwrap().len(), 1);
assert_eq!(resp["models"][0]["model_id"], "gemini-3.0-pro"); assert_eq!(resp["models_scraping"][0]["model_id"], "gemini-3.0-pro");
} }
#[tokio::test] #[tokio::test]
@ -397,7 +407,9 @@ async fn create_provider_with_empty_models_returns_422() {
let body = serde_json::json!({ let body = serde_json::json!({
"provider_name": "openai", "provider_name": "openai",
"display_name": "OpenAI", "display_name": "OpenAI",
"models": [] "is_enabled": true,
"models_scraping": [],
"models_websearch": []
}); });
let (status, resp) = app let (status, resp) = app
.post_with_session("/api/v1/admin/providers", &body, &session) .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!({ let body = serde_json::json!({
"provider_name": "openai", "provider_name": "openai",
"display_name": "OpenAI Fresh", "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} {"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!(resp["id"].is_string(), "Response should have an id");
assert_eq!(resp["provider_name"], "openai"); assert_eq!(resp["provider_name"], "openai");
assert_eq!(resp["display_name"], "OpenAI Fresh"); 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); 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"); assert!(providers.len() >= 3, "Should have at least 3 enabled providers");
// Verify the structure: should NOT have admin-only fields like `id` at root // 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 { for p in providers {
assert!(p["provider_name"].is_string()); assert!(p["provider_name"].is_string());
assert!(p["display_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!({ let body = serde_json::json!({
"provider_name": "openai", "provider_name": "openai",
"display_name": "OpenAI Audit Test", "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 let (status, _) = app
.post_with_session("/api/v1/admin/providers", &body, &session) .post_with_session("/api/v1/admin/providers", &body, &session)

Loading…
Cancel
Save