chaid

    1.0.2 • Public • Published

    chaId

    Id equality assertions for chai.

    NPM version Build Status

    Ids come in lots of flavors. Sometimes they're strings, sometimes objects. Sometimes you'll find them at .id, other times at ._id. ChaId lets you test for equality by comparing string representations of ids, with minimal fretting about initial representation or location:

    {_id: 'foo'}.should.have.id('foo')
    'foo'.should.id({id: 'foo'})
    {id: 'foo', bar: 2}.should.have.same.id({id: 'foo', baz: 3})
    {_id: 'foo'}.should.not.have.same.id({_id: 'bar'})
    {_id: 'foo'}.should.have.same.id({id: {toString: function() { return 'foo'}})
    {_id: 'foo'}.should.have.id(new ObjectId('foo'))

    You can also compare lists of objects by id:

    [{id:'a'}, {id:'b'}].should.have.ids ['a', 'b']
    ['a', 'b'].should.be.ids ['a', 'b']
    [{id:'a'}, {id:'b'}].should.have.same.ids [{id:'a'}, {id:'b'}]
    [{id:'a'}, {id:'b'}].should.not.have.same.ids [{id:'b'}, {id:'a'}]

    By default, order matters. To ignore order, chain unordered:

    [{id:'a'}, {id:'b'}].should.have.same.unordered.ids [{id:'b'}, {id:'a'}]

    You can test for a subset of ids by chaining include or contain:

    [{id:'a'}, {id:'b'}].should.include.same.ids [{id:'a'}]

    Works well with MongoDB ObjectIds:

    doc.should.have.id(new ObjectId())
    doc.should.have.same.id(otherDoc)
    (new ObjectId()).should.id(doc)

    Installation

    This is a plugin for the Chai Assertion Library. Install via npm.

    npm install chaid
    

    Plugin

    Use this plugin as you would all other Chai plugins.

    var chai = require('chai')
      , chaid = require('chaid');
     
    chai.use(chaid);

    Install

    npm i chaid

    DownloadsWeekly Downloads

    774

    Version

    1.0.2

    License

    MIT

    Last publish

    Collaborators

    • hurrymaplelad