import { expect } from 'chai' import u from '../lib' describe('u.withDefault', () => { it('uses the default as the basis for the update if the object is undefined', () => { const inc = (x) => x + 1 const result = u.withDefault({ a: 0 }, { a: inc }, undefined) expect(result).to.eql({ a: 1 }) }) it('uses ignores the default if the object is defined', () => { const inc = (x) => x + 1 const result = u.withDefault({ a: 0 }, { a: inc }, { a: 3 }) expect(result).to.eql({ a: 4 }) }) it('can be partially applied', () => { const object = {} const result = u( { foo: u.withDefault([], { 0: 'bar' }), }, object ) expect(result).to.eql({ foo: ['bar'] }) }) it('freezes the result', () => { expect(Object.isFrozen(u.withDefault({}, { a: 1 })(undefined))).to.be.true }) })