diff --git a/lib/crates/fabro-cli/src/commands/config/mod.rs b/lib/crates/fabro-cli/src/commands/config/mod.rs index d24baf870..dfe9518f1 100644 --- a/lib/crates/fabro-cli/src/commands/config/mod.rs +++ b/lib/crates/fabro-cli/src/commands/config/mod.rs @@ -12,10 +12,10 @@ use std::path::Path; use fabro_config::effective_settings::{EffectiveSettingsLayers, EffectiveSettingsMode}; use fabro_config::{load_settings_project, project}; -use fabro_types::settings::Settings; use fabro_types::settings::cli::{CliLayer, OutputFormat}; use fabro_types::settings::{CliSettings, SettingsLayer}; use fabro_util::printer::Printer; +use serde_json::json; use crate::args::SettingsArgs; use crate::command_context::CommandContext; @@ -96,7 +96,7 @@ fn local_settings_value( None, EffectiveSettingsMode::LocalOnly, )?; - let mut value = serde_json::to_value(resolve_local_settings(&local_settings, printer)?)?; + let mut value = resolve_local_settings_value(&local_settings)?; strip_nulls(&mut value); Ok(value) } @@ -112,36 +112,24 @@ fn render_resolve_errors(errors: Vec) -> anyhow::Err ) } -fn resolve_local_settings(file: &SettingsLayer, printer: Printer) -> anyhow::Result { +fn resolve_local_settings_value(file: &SettingsLayer) -> anyhow::Result { let file = fabro_config::apply_builtin_defaults(file.clone()); let project = fabro_config::resolve_project_from_file(&file).map_err(render_resolve_errors)?; - let workflow = fabro_config::resolve_workflow_from_file(&file).map_err(render_resolve_errors)?; + let workflow = + fabro_config::resolve_workflow_from_file(&file).map_err(render_resolve_errors)?; let run = fabro_config::resolve_run_from_file(&file).map_err(render_resolve_errors)?; let cli = fabro_config::resolve_cli_from_file(&file).map_err(render_resolve_errors)?; - let features = fabro_config::resolve_features_from_file(&file).map_err(render_resolve_errors)?; + let features = + fabro_config::resolve_features_from_file(&file).map_err(render_resolve_errors)?; - let server = match fabro_config::resolve_server_from_file(&file) { - Ok(server) => server, - Err(errors) => { - for error in &errors { - fabro_util::printerr!(printer, "warning: server config: {error}"); - } - - let server_layer = file.server.clone().unwrap_or_default(); - let mut ignored = Vec::new(); - fabro_config::resolve_server(&server_layer, &mut ignored) - } - }; - - Ok(Settings { - project, - workflow, - run, - cli, - server, - features, - }) + Ok(json!({ + "project": project, + "workflow": workflow, + "run": run, + "cli": cli, + "features": features, + })) } async fn rendered_config( diff --git a/lib/crates/fabro-cli/tests/it/cmd/config.rs b/lib/crates/fabro-cli/tests/it/cmd/config.rs index b11f8c5a0..ddf031666 100644 --- a/lib/crates/fabro-cli/tests/it/cmd/config.rs +++ b/lib/crates/fabro-cli/tests/it/cmd/config.rs @@ -682,9 +682,11 @@ name = "legacy-model" .assert() .success(); - let stderr = String::from_utf8_lossy(&assert.get_output().stderr); - assert!(stderr.contains("warning: server config:")); - assert!(stderr.contains("server.auth.methods")); + assert!( + assert.get_output().stderr.is_empty(), + "settings should not warn about legacy config files: {}", + String::from_utf8_lossy(&assert.get_output().stderr) + ); let cfg = parse_settings(&assert.get_output().stdout); assert_eq!(cfg["cli"]["output"]["verbosity"].as_str(), Some("normal")); @@ -719,9 +721,11 @@ name = "legacy-model" .assert() .success(); - let stderr = String::from_utf8_lossy(&assert.get_output().stderr); - assert!(stderr.contains("warning: server config:")); - assert!(stderr.contains("server.auth.methods")); + assert!( + assert.get_output().stderr.is_empty(), + "settings should not warn about legacy config files: {}", + String::from_utf8_lossy(&assert.get_output().stderr) + ); let cfg = parse_settings(&assert.get_output().stdout); assert_eq!(cfg["cli"]["output"]["verbosity"].as_str(), Some("normal")); @@ -756,9 +760,11 @@ name = "legacy-model" .assert() .success(); - let stderr = String::from_utf8_lossy(&assert.get_output().stderr); - assert!(stderr.contains("warning: server config:")); - assert!(stderr.contains("server.auth.methods")); + assert!( + assert.get_output().stderr.is_empty(), + "settings should not warn about legacy config files: {}", + String::from_utf8_lossy(&assert.get_output().stderr) + ); let cfg = parse_settings(&assert.get_output().stdout); assert_eq!(cfg["cli"]["output"]["verbosity"].as_str(), Some("normal"));