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! ```js 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 jason@denizac.org @leJDen

Please submit pull requests and issues through github.

license

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