expect-predicate is an extension for expect that lets you test values against arbitrary predicates.
A value "passes" a predicate if the predicate returns a truthy value.
Using npm:
$ npm install --save-dev expect expect-predicate
Then, use as you would anything else:
// using ES6 modules
import expect from 'expect'
import expectPredicate from 'expect-predicate'
expect.extend(expectPredicate)
// using CommonJS modules
var expect = require('expect')
var expectPredicate = require('expect-predicate')
expect.extend(expectPredicate)
expect(value).toPass(predicate, [message])
Asserts the given value passes the given predicate. If you provide a message, it will be used when reporting the failure.
expect(age).toPass(n => n >= 18) // check age is 18 or older
expect(userList).toPass(array => array.length) // check that userList is not empty
expect(value).toNotPass(predicate, [message])
Asserts the given value does NOT pass the given predicate. If you provide a message, it will be used when reporting the failure.
expect(age).toNotPass(n => n < 18) // check age is not under 18
expect(userList).toNotPass(array => array.length) // check that userList is empty