From bb2209e4253cb06205f90e4c765cd346bc5c9fa3 Mon Sep 17 00:00:00 2001 From: oabrivard Date: Thu, 26 Mar 2026 10:34:16 +0100 Subject: [PATCH] fix: update admin tests for models_scraping/models_websearch split Co-Authored-By: Claude Sonnet 4.6 --- backend/tests/api_admin_test.rs | 46 +++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/backend/tests/api_admin_test.rs b/backend/tests/api_admin_test.rs index 955db95..ff89c17 100644 --- a/backend/tests/api_admin_test.rs +++ b/backend/tests/api_admin_test.rs @@ -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)