@@ -59,8 +59,6 @@ impl AppSettings {
59
59
}
60
60
61
61
mod tests {
62
- use crate :: app_settings:: FeatureFlags ;
63
-
64
62
#[ test]
65
63
fn ensure_default_settings_covers_all_fields ( ) {
66
64
let settings: serde_json:: Value =
@@ -81,53 +79,4 @@ mod tests {
81
79
}
82
80
assert ! ( app_settings. is_ok( ) )
83
81
}
84
-
85
- #[ test]
86
- fn ensure_feature_flags_json_defaults_match_struct_defaults ( ) {
87
- // Get the feature flags from the JSON defaults file
88
- let json_defaults: serde_json:: Value =
89
- serde_json_lenient:: from_str ( crate :: persistence:: DEFAULTS ) . unwrap ( ) ;
90
- let json_feature_flags = json_defaults
91
- . get ( "featureFlags" )
92
- . expect ( "featureFlags should exist in defaults.jsonc" ) ;
93
-
94
- // Create what the struct would look like with proper serde defaults
95
- // Based on the struct definition, most fields are false except ws3 which has #[serde(default = "default_true")]
96
- let expected_default_feature_flags = FeatureFlags {
97
- ws3 : true , // This has #[serde(default = "default_true")] so it should be true
98
- cv3 : false ,
99
- undo : false ,
100
- actions : false ,
101
- butbot : false ,
102
- rules : false ,
103
- single_branch : false ,
104
- } ;
105
-
106
- // Serialize the expected default struct to JSON for comparison
107
- let expected_default_as_json: serde_json:: Value = serde_json:: to_value ( & expected_default_feature_flags)
108
- . expect ( "Expected default FeatureFlags should be serializable" ) ;
109
-
110
- // Compare the JSON values directly - this will catch extra fields like 'v3' that don't exist in the struct
111
- if * json_feature_flags != expected_default_as_json {
112
- println ! ( "\n ===========================================================================================" ) ;
113
- println ! ( "FeatureFlags JSON defaults don't match the default struct serialization!" ) ;
114
- println ! ( ) ;
115
- println ! ( "JSON from defaults.jsonc:" ) ;
116
- println ! ( "{}" , serde_json:: to_string_pretty( json_feature_flags) . unwrap( ) ) ;
117
- println ! ( ) ;
118
- println ! ( "Expected default struct serialized:" ) ;
119
- println ! ( "{}" , serde_json:: to_string_pretty( & expected_default_as_json) . unwrap( ) ) ;
120
- println ! ( ) ;
121
- println ! ( "This means the JSON defaults contain fields or values that don't match" ) ;
122
- println ! ( "the FeatureFlags struct definition. Please update either:" ) ;
123
- println ! ( "1. The defaults in 'crates/but-settings/assets/defaults.jsonc' (remove extra fields, fix values)" ) ;
124
- println ! ( "2. The FeatureFlags struct in 'crates/but-settings/src/app_settings.rs' (add missing fields)" ) ;
125
- println ! ( "===========================================================================================\n " ) ;
126
- }
127
-
128
- assert_eq ! (
129
- * json_feature_flags, expected_default_as_json,
130
- "FeatureFlags JSON defaults should match the expected default struct when serialized"
131
- ) ;
132
- }
133
82
}
0 commit comments