@@ -190,7 +190,7 @@ suite('ConfigurationModel', () => {
190
190
let result = base . merge ( add ) ;
191
191
192
192
assert . deepStrictEqual ( result . contents , { 'a' : { 'b' : 2 } } ) ;
193
- assert . deepStrictEqual ( result . overrides , [ { identifiers : [ 'c' ] , contents : { 'a' : 2 , 'b' : 2 } , keys : [ 'a' ] } ] ) ;
193
+ assert . deepStrictEqual ( result . overrides , [ { identifiers : [ 'c' ] , contents : { 'a' : 2 , 'b' : 2 } , keys : [ 'a' , 'b' ] } ] ) ;
194
194
assert . deepStrictEqual ( result . override ( 'c' ) . contents , { 'a' : 2 , 'b' : 2 } ) ;
195
195
assert . deepStrictEqual ( result . keys , [ 'a.b' ] ) ;
196
196
} ) ;
@@ -260,6 +260,21 @@ suite('ConfigurationModel', () => {
260
260
261
261
assert . deepStrictEqual ( testObject . getKeysForOverrideIdentifier ( 'x' ) , [ 'a' , 'b' ] ) ;
262
262
} ) ;
263
+
264
+ test ( 'Test merge when configuration models have multiple identifiers' , ( ) => {
265
+ const testObject = new ConfigurationModel ( { 'a' : 1 , 'c' : 1 } , [ 'a' , 'c' ] , [ { identifiers : [ 'y' ] , contents : { 'c' : 1 } , keys : [ 'c' ] } , { identifiers : [ 'x' , 'y' ] , contents : { 'a' : 2 } , keys : [ 'a' ] } ] ) ;
266
+ const target = new ConfigurationModel ( { 'a' : 2 , 'b' : 1 } , [ 'a' , 'b' ] , [ { identifiers : [ 'x' ] , contents : { 'a' : 3 , 'b' : 2 } , keys : [ 'a' , 'b' ] } , { identifiers : [ 'x' , 'y' ] , contents : { 'b' : 3 } , keys : [ 'b' ] } ] ) ;
267
+
268
+ const actual = testObject . merge ( target ) ;
269
+
270
+ assert . deepStrictEqual ( actual . contents , { 'a' : 2 , 'c' : 1 , 'b' : 1 } ) ;
271
+ assert . deepStrictEqual ( actual . keys , [ 'a' , 'c' , 'b' ] ) ;
272
+ assert . deepStrictEqual ( actual . overrides , [
273
+ { identifiers : [ 'y' ] , contents : { 'c' : 1 } , keys : [ 'c' ] } ,
274
+ { identifiers : [ 'x' , 'y' ] , contents : { 'a' : 2 , 'b' : 3 } , keys : [ 'a' , 'b' ] } ,
275
+ { identifiers : [ 'x' ] , contents : { 'a' : 3 , 'b' : 2 } , keys : [ 'a' , 'b' ] } ,
276
+ ] ) ;
277
+ } ) ;
263
278
} ) ;
264
279
265
280
suite ( 'CustomConfigurationModel' , ( ) => {
0 commit comments