chaId

chai 用 ID 等価アサーション

NPM version Build Status

ID には たくさん種類があります。文字列の場合もあれば、オブジェクトの場合もあります。 .id にある場合もありますが、 ._id にあることもあります。ChaId を使用すると、ID を文字列表現で比較して等価であることをテストできます。最初にどこにあるかやどの表現であるかについて細かく調べる必要はありません。

{_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'))

また、オブジェクトのリストを 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'}]

デフォルトでは、順番は重要です。順番を無視するには、 unordered をチェーンします。

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

include または contain をチェーンして、ID のサブセットをテストできます。

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

MongoDB ObjectId との相性がよい

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

インストール

これは Chai アサーションライブラリ のプラグインです。npm でインストールします。

npm install chaid

プラグイン

他のすべての Chai プラグインと同様に、このプラグインを使用します。

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

chai.use(chaid);