coalescy.js 821 Bytes
Newer Older
YazhouChen's avatar
YazhouChen committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
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 );
  } );
} );