Skip to content

51ulong/chai-properties

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chai-properties

Properties matcher for chai

Make assertions that values have all the same attributes and values without asserting strict object equality.

browser-side

include chai properties after chai:

<script src="lodash.js"></script>
<script src="chai.js"></script>
<script src="chai-properties.js"></script>

server-side

have chai use chai-properties:

var chai = require('chai');
chai.use(require('chai-properties'));

Assertions

properties(object)

partially compare object attributes and values

var subject = { a: 'a', b: 'b', c: 'c' };
subject.should.have.properties({ a: 'a' });
subject.should.have.properties({ a: 'a', b: 'b' });
subject.should.not.have.properties({ a: 'a', z: 'z' });
subject.should.not.have.properties({ a: '1' });

expect(subject).to.have.properties({ a: 'a' });
expect(subject).to.have.properties({ a: 'a', b: 'b' });
expect(subject).to.not.have.properties({ a: 'a', z: 'z' });
expect(subject).to.not.have.properties({ a: '1' });

assert.haveProperties(subject, { a: 'a' });
assert.haveProperties(subject, { a: 'a', b: 'b' });
assert.notHaveProperties(subject, { a: 'a', z: 'z' });
assert.notHaveProperties(subject, { a: '1' });

Difference between expectation and actual result

properties assertion will show difference between expectation and actual result when asserion will fail.

var subject = { a: 'a', b: 'b', c: 'c' };
expect(subject).to.have.properties({ a: 'a', b: 'c' });
AssertionError: expected { a: 'a', b: 'b', c: 'c' }
  to have properties { a: 'a', b: 'c' }, but found { a: 'a', b: 'b' }

+ expected - actual

 {
   "a": "a"
-  "b": "b"
-  "c": "c"
+  "b": "c"
 }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%