2.0.3 • Published 10 years ago

chai-interface v2.0.3

Weekly downloads
1,162
License
MIT
Repository
github
Last release
10 years ago

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

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.2.0

10 years ago

1.1.0

13 years ago

1.0.1

13 years ago

1.0.0

13 years ago