44 *--------------------------------------------------------------------------------------------*/
55import * as assert from 'assert' ;
66import { merge , removeFromValueTree } from 'vs/platform/configuration/common/configuration' ;
7+ import { mergeChanges } from 'vs/platform/configuration/common/configurationModels' ;
78
89suite ( 'Configuration' , ( ) => {
910
@@ -104,4 +105,43 @@ suite('Configuration', () => {
104105 assert . deepEqual ( target , { 'a' : { 'b' : { 'd' : 1 } } } ) ;
105106 } ) ;
106107
107- } ) ;
108+ } ) ;
109+
110+ suite ( 'Configuration Changes: Merge' , ( ) => {
111+
112+ test ( 'merge only keys' , ( ) => {
113+ const actual = mergeChanges ( { keys : [ 'a' , 'b' ] , overrides : [ ] } , { keys : [ 'c' , 'd' ] , overrides : [ ] } ) ;
114+ assert . deepEqual ( actual , { keys : [ 'a' , 'b' , 'c' , 'd' ] , overrides : [ ] } ) ;
115+ } ) ;
116+
117+ test ( 'merge only keys with duplicates' , ( ) => {
118+ const actual = mergeChanges ( { keys : [ 'a' , 'b' ] , overrides : [ ] } , { keys : [ 'c' , 'd' ] , overrides : [ ] } , { keys : [ 'a' , 'd' , 'e' ] , overrides : [ ] } ) ;
119+ assert . deepEqual ( actual , { keys : [ 'a' , 'b' , 'c' , 'd' , 'e' ] , overrides : [ ] } ) ;
120+ } ) ;
121+
122+ test ( 'merge only overrides' , ( ) => {
123+ const actual = mergeChanges ( { keys : [ ] , overrides : [ [ 'a' , [ '1' , '2' ] ] ] } , { keys : [ ] , overrides : [ [ 'b' , [ '3' , '4' ] ] ] } ) ;
124+ assert . deepEqual ( actual , { keys : [ ] , overrides : [ [ 'a' , [ '1' , '2' ] ] , [ 'b' , [ '3' , '4' ] ] ] } ) ;
125+ } ) ;
126+
127+ test ( 'merge only overrides with duplicates' , ( ) => {
128+ const actual = mergeChanges ( { keys : [ ] , overrides : [ [ 'a' , [ '1' , '2' ] ] , [ 'b' , [ '5' , '4' ] ] ] } , { keys : [ ] , overrides : [ [ 'b' , [ '3' , '4' ] ] ] } , { keys : [ ] , overrides : [ [ 'c' , [ '1' , '4' ] ] , [ 'a' , [ '2' , '3' ] ] ] } ) ;
129+ assert . deepEqual ( actual , { keys : [ ] , overrides : [ [ 'a' , [ '1' , '2' , '3' ] ] , [ 'b' , [ '5' , '4' , '3' ] ] , [ 'c' , [ '1' , '4' ] ] ] } ) ;
130+ } ) ;
131+
132+ test ( 'merge' , ( ) => {
133+ const actual = mergeChanges ( { keys : [ 'b' , 'b' ] , overrides : [ [ 'a' , [ '1' , '2' ] ] , [ 'b' , [ '5' , '4' ] ] ] } , { keys : [ 'b' ] , overrides : [ [ 'b' , [ '3' , '4' ] ] ] } , { keys : [ 'c' , 'a' ] , overrides : [ [ 'c' , [ '1' , '4' ] ] , [ 'a' , [ '2' , '3' ] ] ] } ) ;
134+ assert . deepEqual ( actual , { keys : [ 'b' , 'c' , 'a' ] , overrides : [ [ 'a' , [ '1' , '2' , '3' ] ] , [ 'b' , [ '5' , '4' , '3' ] ] , [ 'c' , [ '1' , '4' ] ] ] } ) ;
135+ } ) ;
136+
137+ test ( 'merge single change' , ( ) => {
138+ const actual = mergeChanges ( { keys : [ 'b' , 'b' ] , overrides : [ [ 'a' , [ '1' , '2' ] ] , [ 'b' , [ '5' , '4' ] ] ] } ) ;
139+ assert . deepEqual ( actual , { keys : [ 'b' , 'b' ] , overrides : [ [ 'a' , [ '1' , '2' ] ] , [ 'b' , [ '5' , '4' ] ] ] } ) ;
140+ } ) ;
141+
142+ test ( 'merge no changes' , ( ) => {
143+ const actual = mergeChanges ( ) ;
144+ assert . deepEqual ( actual , { keys : [ ] , overrides : [ ] } ) ;
145+ } ) ;
146+
147+ } ) ;
0 commit comments