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; }); });