assertit
Version:
Because the world needs a simpler assert. Based on and inspired by `testit` - simpler testing framework.
59 lines (52 loc) • 1.59 kB
JavaScript
/**
* assertit <https://github.com/tunnckoCore/assertit>
*
* Copyright (c) 2015 Charlike Mike Reagent, contributors.
* Released under the MIT license.
*/
;
var assert = require('assert');
var testit = require('testit');
var is = require('assert-kindof');
var assertit = module.exports = function _assertit(name, fn, val) {
if (is.kindof.string(name) && is.kindof.function(fn)) {
testit(name, fn, is.kindof.object(val) ? val : {});
return;
}
if (!is.kindof.object(val) && is.kindof.function(name) && is.kindof.function(fn) && /Error/g.test(fn.name)) {
assert.throws(name, fn, val);
return;
}
if (!is.kindof.object(val) && is.kindof.function(name) && is.kindof.regexp(fn)) {
assert.throws(name, fn, val);
return;
}
// @todo
assert.strictEqual(name, fn, val);
// @todo
}
assertit.is = is;
assertit.kindof = is.kindof;
assertit.eql = assert.equal;
assertit.expect = assertit;
assertit.assume = assertit;
assertit.should = assertit;
assertit.describe = assertit;
assertit.it = assertit;
assertit.test = assertit;
assertit.suite = assertit;
assertit.testit = testit;
assertit.equal = function deepStrictEqual(actual, expected, msg) {
assert.strictEqual(actual, expected, msg);
if (assert.deepStrictEqual) {
assert.deepStrictEqual(actual, expected, msg);
} else {
assert.deepEqual(actual, expected, msg);
}
};
// extend
Object.keys(assert).forEach(function(method) {
if (!assertit.hasOwnProperty(method)) {
assertit[method] = assert[method]
}
});