chai-joi

2.0.3 • Public • Published

chai-joi

Extends Chai with Joi specific assertions.

npm version Build Status Dependencies Status DevDependencies Status

TL;DL

Assuming that result is the result of a Joi validation:

  • Assert-style

    • chai.assert.isValidation(result)
  • BDD-style

    • result.should
      • [.not].be.a.validation
      • [.not].validate
      • [.not].have.an.error
      • [.not].have.a.value
      • [.not].have.errmsgs
      • [.not].have.errmsgs.that.include(str)
      • [.not].have.errmsg(str)
  • TDD-style

    • expect(result).to
      • [.not].be.a.validation
      • [.not].validate
      • [.not].have.an.error
      • [.not].have.a.value
      • [.not].have.errmsgs
      • [.not].have.errmsgs.that.include(str)
      • [.not].have.errmsg(str)

(See test/chai-joi.js for uses.)

Example:

var joi    = require('joi'),
    chai   = require('chai'),
    expect = chai.expect;
 
chai.should();
 
chai.use( require('chai-joi') );
 
var data={
  str:'foo',
  num: 100
};
 
var schema=joi.object({
  str:joi.string().allow(''),
  num:joi.number().min(1).max(10)
});
 
var result=joi.validate(data,schema);
 
result.should.not.validate;
result.should.have.errmsg('"value" must be less than or equal to 10');
 
data.num=1;
result=joi.validate(data,schema);
 
expect(result).to.validate;
expect(result).to.not.have.errmsgs; // same thing, really.

assert

Extension to chai.assert to test for a valid Joi validation result.


assert.isValidation(target)

Asserts that the target object is result of a call to Joi.validate()

Parameters

target: object, Asserts that the target object is result of a call to Joi.validate()

Returns: boolean

property

Chainable properties.


property.validation()

Assert that target is a Joi validation

Example:

expect(target).to.[not].be.a.validation
target.should.[not].be.a.validation

property.validate()

Assert that target validates correctly

Example:

expect(target).should.[not].validate
target.should.[not].validate

property.error()

Assert that target contains one or more errors (unsuccessful validation). Mutates current chainable object to be target.error.

Example:

expect(target).to.[not].have.an.error
target.should.[not].have.an.error

property.value()

Assert that target contains a value. Mutates current chainable object to be target.value.

Example:

expect(target).to.[not].have.a.value
target.should.[not].have.a.value

property.errmsgs()

Assert that target contains one or more error messages (unsuccessful validation). Mutates current chainable object to be list {String[]} of error messages.

Example:

expect(target).to.[not].have.errmsgs
target.should.[not].have.errmsgs
expect(target).to.[not].have.errmsgs.that.include(errmsg)
target.should.have.errmsgs.that.include(errmsg)

method

Chainable methods.


method.errmsg(msg)

Assert that target contains specified error message (unsuccessful validation).

Parameters

msg: String, errmsg to match

Example:

target.should.[not].have.errmsg(msg)

Readme

Keywords

Package Sidebar

Install

npm i chai-joi

Weekly Downloads

93

Version

2.0.3

License

MIT

Unpacked Size

21.8 kB

Total Files

7

Last publish

Collaborators

  • raisch