diff --git a/lib/chai/interface/assert.js b/lib/chai/interface/assert.js index a4f478b4d..56a688bbb 100644 --- a/lib/chai/interface/assert.js +++ b/lib/chai/interface/assert.js @@ -1243,11 +1243,24 @@ module.exports = function (chai, util) { } /*! - * Undocumented / untested + * ### .ifError(object) + * + * Asserts if value is not a false value, and throws if it is a true value. + * This is added to allow for chai to be a drop-in replacement for Node's + * assert class. + * + * var err = new Error('I am a custom error'); + * assert.ifError(err); // Rethrows err! + * + * @name ifError + * @param {Object} object + * @api public */ - assert.ifError = function (val, msg) { - new Assertion(val, msg).to.not.be.ok; + assert.ifError = function (val) { + if (val) { + throw(val); + } }; /*! diff --git a/test/assert.js b/test/assert.js index 6fe53e976..bcf78081d 100644 --- a/test/assert.js +++ b/test/assert.js @@ -551,8 +551,9 @@ describe('assert', function () { assert.ifError(undefined); err(function () { - assert.ifError('foo'); - }, "expected \'foo\' to be falsy"); + var err = new Error('This is an error message'); + assert.ifError(err); + }, 'This is an error message'); }); it('operator', function() {