sanity
Version:
Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches
43 lines (35 loc) • 1.07 kB
text/typescript
import {expect, it} from '@jest/globals'
import deepAssign from './deepAssign'
it('ignores undefined values', () => {
expect(deepAssign({foo: undefined}, {bar: undefined})).toStrictEqual({
foo: undefined,
bar: undefined,
})
})
it('assigns undefined values from source', () => {
expect(deepAssign({foo: 'bar', bar: 'hello'}, {foo: undefined})).toStrictEqual({
foo: undefined,
bar: 'hello',
})
})
it('assigns non-undefined values from source', () => {
expect(deepAssign({foo: undefined}, {bar: 'hello'})).toStrictEqual({foo: undefined, bar: 'hello'})
})
it('merges non-undefined values', () => {
expect(deepAssign({foo: 'foo'}, {bar: 'bar'})).toStrictEqual({foo: 'foo', bar: 'bar'})
})
it("doesn't merge arrays", () => {
expect(deepAssign({arr: ['foo']}, {arr: ['bar']})).toStrictEqual({arr: ['bar']})
})
it('merges deep', () => {
expect(
deepAssign({some: {deep: {object: true}}}, {some: {deep: {array: ['foo']}}}),
).toStrictEqual({
some: {
deep: {
array: ['foo'],
object: true,
},
},
})
})