57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
import merge from '@/utils/merge.ts'
|
|
|
|
describe('merge', () => {
|
|
it('Can merge simple object', () => {
|
|
expect(merge({
|
|
optionA: true,
|
|
optionB: '1234',
|
|
}, {
|
|
optionA: false,
|
|
})).toEqual({
|
|
optionA: false,
|
|
optionB: '1234',
|
|
})
|
|
})
|
|
|
|
it('Can add to simple array', () => {
|
|
expect(merge({
|
|
optionA: true,
|
|
optionB: ['first', 'second']
|
|
}, {
|
|
optionB: ['third']
|
|
}, true)).toEqual({
|
|
optionA: true,
|
|
optionB: ['first', 'second', 'third']
|
|
})
|
|
})
|
|
|
|
it('Can merge recursively', () => {
|
|
expect(merge({
|
|
optionA: true,
|
|
optionC: {
|
|
first: '123',
|
|
third: {
|
|
a: 'b',
|
|
},
|
|
},
|
|
optionB: '1234',
|
|
}, {
|
|
optionB: '567',
|
|
optionC: {
|
|
first: '1234',
|
|
second: '789',
|
|
}
|
|
})).toEqual({
|
|
optionA: true,
|
|
optionC: {
|
|
first: '1234',
|
|
third: {
|
|
a: 'b',
|
|
},
|
|
second: '789',
|
|
},
|
|
optionB: '567',
|
|
})
|
|
})
|
|
})
|