coalescy.js 821 Bytes
describe( 'coalescy', function () {

  beforeEach( function () {
    this.coalesce = require( '../index' );
  } );

  it( 'should return the first non null value', function () {
    var result = this.coalesce( null, [] );
    expect( result ).to.deep.equal( [] );

    result = this.coalesce( null, {} );
    expect( result ).to.deep.equal( {} );

    result = this.coalesce( null, [], {} );
    expect( result ).to.deep.equal( [] );

    result = this.coalesce( null, undefined, 0, {} );
    expect( result ).to.equal( 0 );

    var a = null,
      b,
      c = 0,
      d = 1;

    result = this.coalesce( a, b, c, d );
    expect( result ).to.equal( 0 );
  } );

  it( 'should return null when no arguments are passed', function () {
    var result = this.coalesce();
    expect( result ).to.equal( null );
  } );
} );