Extends Chai with Joi specific assertions.
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)
- result.should
-
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)
- expect(result).to
(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.
Extension to chai.assert to test for a valid Joi validation result.
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
Chainable properties.
Assert that target is a Joi validation
Example:
expect(target).to.[not].be.a.validation
target.should.[not].be.a.validation
Assert that target validates correctly
Example:
expect(target).should.[not].validate
target.should.[not].validate
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
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
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)
Chainable methods.
Assert that target contains specified error message (unsuccessful validation).
Parameters
msg: String
, errmsg to match
Example:
target.should.[not].have.errmsg(msg)