2.0.3 • Published 6 years ago

chai-joi v2.0.3

Weekly downloads
111
License
MIT
Repository
github
Last release
6 years ago

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)

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

1.1.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.0.5

9 years ago