node module: chai assertions about an object's interface
JavaScript
Latest commit 731a169 Feb 18, 2016 jden 2.0.3
Permalink
Failed to load latest commit information.
test
.gitignore open source all the things Jan 30, 2013
LICENSE.md break out license Jan 30, 2013
README.md
index.js
package.json 2.0.3 Feb 18, 2016

README.md

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

Please submit pull requests and issues through github.

license

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