From e1ea4ebb9def7660ddcf0e39d0a13f280f638373 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 24 May 2026 12:14:59 -0400 Subject: [PATCH] Fix verification fixture drift --- .../app/routes/run-overview.test.tsx | 1 + .../fabro-api/tests/provider_round_trip.rs | 46 ++++++++++--------- .../src/commands/run/run_progress/mod.rs | 4 +- 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/apps/fabro-web/app/routes/run-overview.test.tsx b/apps/fabro-web/app/routes/run-overview.test.tsx index 41caeaa8b..0601acf80 100644 --- a/apps/fabro-web/app/routes/run-overview.test.tsx +++ b/apps/fabro-web/app/routes/run-overview.test.tsx @@ -19,6 +19,7 @@ mock.module("../lib/queries", () => ({ isLoading: currentGraphLoading, mutate: graphMutateMock, }), + useRunStageEvents: () => ({ data: [] }), })); mock.module("../components/run-summary-panel", () => ({ diff --git a/lib/crates/fabro-api/tests/provider_round_trip.rs b/lib/crates/fabro-api/tests/provider_round_trip.rs index dc2d75aa2..44537896a 100644 --- a/lib/crates/fabro-api/tests/provider_round_trip.rs +++ b/lib/crates/fabro-api/tests/provider_round_trip.rs @@ -12,16 +12,17 @@ fn provider_reuses_canonical_type() { #[test] fn provider_json_matches_openapi_shape() { let provider = Provider { - id: ProviderId::anthropic(), - display_name: "Anthropic".to_string(), - adapter: AdapterKind::Anthropic, - base_url: Some("https://api.anthropic.test/v1".to_string()), - api_key_url: Some("https://console.anthropic.com/settings/keys".to_string()), - priority: 100, - aliases: vec!["claude".to_string()], - model_count: 7, - default_model: Some("claude-opus-4-7".to_string()), - configured: true, + id: ProviderId::anthropic(), + display_name: "Anthropic".to_string(), + adapter: AdapterKind::Anthropic, + base_url: Some("https://api.anthropic.test/v1".to_string()), + api_key_url: Some("https://console.anthropic.com/settings/keys".to_string()), + priority: 100, + aliases: vec!["claude".to_string()], + model_count: 7, + default_model: Some("claude-opus-4-7".to_string()), + configured: true, + expected_secret_name: Some("ANTHROPIC_API_KEY".to_string()), }; let json = serde_json::to_value(&provider).unwrap(); @@ -38,6 +39,7 @@ fn provider_json_matches_openapi_shape() { assert_eq!(json["model_count"], 7); assert_eq!(json["default_model"], "claude-opus-4-7"); assert_eq!(json["configured"], true); + assert_eq!(json["expected_secret_name"], "ANTHROPIC_API_KEY"); let round_trip: ApiProvider = serde_json::from_value(json).unwrap(); assert_eq!(round_trip, provider); @@ -46,19 +48,20 @@ fn provider_json_matches_openapi_shape() { #[test] fn provider_omits_optional_fields_when_absent() { // Proves the required/optional split the OpenAPI `Provider` schema - // declares: the four `skip_serializing_if` fields drop out entirely, while + // declares: the five `skip_serializing_if` fields drop out entirely, while // the six required fields always serialize. let provider = Provider { - id: ProviderId::new("custom"), - display_name: "Custom".to_string(), - adapter: AdapterKind::OpenAiCompatible, - base_url: None, - api_key_url: None, - priority: 0, - aliases: Vec::new(), - model_count: 0, - default_model: None, - configured: false, + id: ProviderId::new("custom"), + display_name: "Custom".to_string(), + adapter: AdapterKind::OpenAiCompatible, + base_url: None, + api_key_url: None, + priority: 0, + aliases: Vec::new(), + model_count: 0, + default_model: None, + configured: false, + expected_secret_name: None, }; let json = serde_json::to_value(&provider).unwrap(); @@ -67,6 +70,7 @@ fn provider_omits_optional_fields_when_absent() { assert!(!object.contains_key("api_key_url")); assert!(!object.contains_key("aliases")); assert!(!object.contains_key("default_model")); + assert!(!object.contains_key("expected_secret_name")); assert!(object.contains_key("id")); assert!(object.contains_key("display_name")); assert!(object.contains_key("adapter")); diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs b/lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs index 376d77999..eee7c3789 100644 --- a/lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs +++ b/lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs @@ -863,7 +863,7 @@ mod tests { ); emit(&mut ui, stage_completed("plan", "Plan")); - insta::assert_snapshot!(rendered(&buffer), @" ✓ Plan $0.00 5s"); + insta::assert_snapshot!(rendered(&buffer), @" ✓ Plan 5s"); } #[test] @@ -1233,7 +1233,7 @@ mod tests { Running devcontainer postCreate (1 commands)... ✓ [1/1] npm run setup 1s Devcontainer: postCreate (1s) - ✓ Code $0.00 5s (1 turns, 0 tools, 1.5k toks) + ✓ Code 5s (1 turns, 0 tools, 1.5k toks) "#); }