File tree Expand file tree Collapse file tree
rust/operator-binary/src/controller Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -341,12 +341,28 @@ mod tests {
341341 let role = overrides ( & [ ( "a" , Some ( "role" ) ) ] ) ;
342342 let role_group = overrides ( & [ ( "a" , None ) ] ) ; // explicit `null` at the more specific level
343343
344- let merged = resolve ( role, Some ( role_group) ) ;
344+ // For contrast: `main`'s product-config used a blind `.extend()`, so the role-group
345+ // `null` overwrote the role value and the key was then dropped — i.e. unset entirely.
346+ let old_extend_behaviour: BTreeMap < String , String > = {
347+ let mut combined = role. overrides . clone ( ) ;
348+ combined. extend ( role_group. overrides . clone ( ) ) ;
349+ combined
350+ . into_iter ( )
351+ . filter_map ( |( key, value) | value. map ( |value| ( key, value) ) )
352+ . collect ( )
353+ } ;
354+ assert ! (
355+ old_extend_behaviour. is_empty( ) ,
356+ "under the old `.extend()` behaviour the role-group `null` unsets `a`"
357+ ) ;
345358
359+ // What we do now (Merge): the role-group `null` means "inherit", so the role-level
360+ // value is kept rather than unset.
361+ let merged = resolve ( role, Some ( role_group) ) ;
346362 assert_eq ! (
347363 merged,
348364 BTreeMap :: from( [ ( "a" . to_string( ) , "role" . to_string( ) ) ] ) ,
349- "a role-group `null` should inherit the role-level value under Merge semantics "
365+ "under Merge semantics the role-group `null` inherits the role-level value"
350366 ) ;
351367 }
352368
You can’t perform that action at this time.
0 commit comments