32 lines
803 B
JavaScript
32 lines
803 B
JavaScript
|
import { Eltro as t, assert} from 'eltro'
|
||
|
import defaults from '../api/defaults.mjs'
|
||
|
|
||
|
t.describe('#defaults()', () => {
|
||
|
t.test('should apply defaults to flat objects', () => {
|
||
|
let assertOutput = { a: 1 }
|
||
|
let output = defaults(null, { a: 1 })
|
||
|
|
||
|
assert.deepStrictEqual(output, assertOutput)
|
||
|
output = defaults({ a: 1 })
|
||
|
|
||
|
assert.deepStrictEqual(output, assertOutput)
|
||
|
})
|
||
|
|
||
|
t.test('should allow overriding defult properties', () => {
|
||
|
let assertOutput = { a: 2 }
|
||
|
let output = defaults(assertOutput, { a: 1 })
|
||
|
|
||
|
assert.deepStrictEqual(output, assertOutput)
|
||
|
})
|
||
|
|
||
|
t.test('should allow nesting through objects', () => {
|
||
|
let def = { a: { b: 2 } }
|
||
|
let output = defaults({ a: { c: 3} }, def)
|
||
|
|
||
|
assert.deepStrictEqual(output.a, {
|
||
|
b: 2,
|
||
|
c: 3,
|
||
|
})
|
||
|
})
|
||
|
})
|