Skip to content

Commit 59111ab

Browse files
committed
add tests for merge changes
1 parent 2ccb11e commit 59111ab

1 file changed

Lines changed: 41 additions & 1 deletion

File tree

src/vs/platform/configuration/test/common/configuration.test.ts

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55
import * as assert from 'assert';
66
import { merge, removeFromValueTree } from 'vs/platform/configuration/common/configuration';
7+
import { mergeChanges } from 'vs/platform/configuration/common/configurationModels';
78

89
suite('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

Comments
 (0)