chai-interface

chai assertions about an object's interface

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chai-interface
2.0.38 years ago11 years agoMinified + gzip package size for chai-interface in KB

Readme

chai-interface
chai assertions about an object's interface

installation

$ npm install chai-interface

usage

var chai = require('chai')
chai.should()
chai.use(require('chai-interface'))

var foo = {
  bar: true,
  baz: 'green',
  qux: 37,
  quack: function () {},
  ducks: [1, 2, 3]
}

foo.should.have.interface({
  bar: Boolean,
  baz: String,
  qux: Number,
  quack: Function,
  ducks: Array
})

Also, more complex, nested objects!
var user = {
  name: {
    first: 'Betty',
    last: 'Dodson'
  },
  emails: {
    work: 'b.dodson@megacorp.com',
    home: 'butterflychica947@lol.com',
    school: 'bdodso4@stateu.edu'
  }
}

user.should.have.interface({
  name: {
    first: String,
    last: String
  },
  emails: {
    work: String,
    home: String,
    school: String
  }
})

example error message

Interface not as expected:
{
  "bars": {
    "actual": "Array<String>",
    "expected": "Array<Number>",
    "actualValue": [
      "a",
      "b",
      "c"
    ]
  }
}

by the power of tracery

chai-interface does interface checking using tracery

contributors

jden @leJDen
Please submit pull requests and issues through github.

license

MIT (c) 2013 Agile Diagnosis, Inc. see LICENSE.md