chai-by-proxy
Getting started
$ npm install --save-dev chai-by-proxy
node < 6
$ npm install --save-dev harmony-reflect
$ echo " --harmony_proxies" >> test/mocha.opts
$ echo " --require harmony-reflect" >> test/mocha.opts
node 0.10
$ echo " --harmony_collections" >> test/mocha.opts
Usage
var chai = require (' chai' )
chai .use (require (' chai-by-proxy' ))
have/has
(starts a chain)
obj = { foo: { bar: ' baz' } })
obj .should .have .foo .bar .eq (' baz' )
// same as
obj .should .have .property (' foo' ).property (' bar' ).eq (' baz' )
chai
's properties are prior to your object's
obj = { a: { property: ' ' } }
// you can't do
obj .should .have .a .property
// instead, fallback to old style
obj .should .have .deep .property (' a.property' )
and
(goes back to the last have/has)
obj = { foo: { bar: ' ' },
baz: { qux: 11 } }
obj .should .have .foo .bar .with .a (' string' )
.and .baz .qux .eq (11 )
without
(negates)
obj = { foo: {} }
obj .should .have .foo .without .bar
=
(equals)
obj = { foo: { bar: ' baz' } }
obj .should .have .foo .bar = ' baz'
not=
(not.equals)
obj = { foo: { bar: ' baz' } }
obj .should .have .foo .bar .not = ' qux'
long live the chain
response =
status : 200
body :
data :
count : 1
items : [
{ name : ' party pooper' }
]
response.should.have.status.which.eq (200 )
.and.body.without.error
.and.body.data.has.count.above (0 )
.and.items[0 ].name = ' party pooper'