diff --git a/lib/chai/core/assertions.js b/lib/chai/core/assertions.js index 1600b2c98..069c5241b 100644 --- a/lib/chai/core/assertions.js +++ b/lib/chai/core/assertions.js @@ -1142,6 +1142,7 @@ module.exports = function (chai, _) { , ssfi = flag(this, 'ssfi') , objType = _.type(obj).toLowerCase() , nType = _.type(n).toLowerCase() + , errorMessage , shouldThrow = true; if (doLength) { @@ -1238,6 +1239,7 @@ module.exports = function (chai, _) { , ssfi = flag(this, 'ssfi') , objType = _.type(obj).toLowerCase() , nType = _.type(n).toLowerCase() + , errorMessage , shouldThrow = true; if (doLength) { @@ -1333,6 +1335,7 @@ module.exports = function (chai, _) { , ssfi = flag(this, 'ssfi') , objType = _.type(obj).toLowerCase() , nType = _.type(n).toLowerCase() + , errorMessage , shouldThrow = true; if (doLength) { @@ -1428,6 +1431,7 @@ module.exports = function (chai, _) { , ssfi = flag(this, 'ssfi') , objType = _.type(obj).toLowerCase() , nType = _.type(n).toLowerCase() + , errorMessage , shouldThrow = true; if (doLength) { @@ -1524,6 +1528,7 @@ module.exports = function (chai, _) { , objType = _.type(obj).toLowerCase() , startType = _.type(start).toLowerCase() , finishType = _.type(finish).toLowerCase() + , errorMessage , shouldThrow = true , range = (startType === 'date' && finishType === 'date') ? start.toUTCString() + '..' + finish.toUTCString() diff --git a/test/assert.js b/test/assert.js index ab12e2921..e3483ee97 100644 --- a/test/assert.js +++ b/test/assert.js @@ -180,19 +180,12 @@ describe('assert', function () { assert.instanceOf(new Foo(), undefined); }, "The instanceof assertion needs a constructor but undefined was given."); - var expectedError; - try { - t instanceof Thing; - } catch (err) { - errMsg = '[object Object] instanceof function Thing(){} failed: ' + err.message + '.'; - } - err(function(){ function Thing(){}; var t = new Thing(); Thing.prototype = 1337; assert.instanceOf(t, Thing); - }, expectedError, true); + }, 'The instanceof assertion needs a constructor but function was given.', true); if (typeof Symbol !== 'undefined' && typeof Symbol.hasInstance !== 'undefined') { err(function(){ diff --git a/test/expect.js b/test/expect.js index 043c734e5..0b5a0e5b2 100644 --- a/test/expect.js +++ b/test/expect.js @@ -413,20 +413,12 @@ describe('expect', function () { expect(new Foo()).to.an.instanceof(undefined); }, "The instanceof assertion needs a constructor but undefined was given."); - // Different browsers may have different error messages - var expectedError; - try { - t instanceof Thing; - } catch (err) { - errMsg = '[object Object] instanceof function Thing(){} failed: ' + err.message + '.'; - } - err(function(){ function Thing(){}; var t = new Thing(); Thing.prototype = 1337; expect(t).to.an.instanceof(Thing); - }, expectedError, true) + }, 'The instanceof assertion needs a constructor but function was given.', true) if (typeof Symbol !== 'undefined' && typeof Symbol.hasInstance !== 'undefined') { err(function(){ diff --git a/test/should.js b/test/should.js index 4585bfc1b..1453512d6 100644 --- a/test/should.js +++ b/test/should.js @@ -455,20 +455,12 @@ describe('should', function() { new Foo().should.be.an.instanceof(undefined); }, "The instanceof assertion needs a constructor but undefined was given."); - // Different browsers may have different error messages - var expectedError; - try { - t instanceof Thing; - } catch (err) { - errMsg = '[object Object] instanceof function Thing(){} failed: ' + err.message + '.'; - } - err(function(){ function Thing(){}; var t = new Thing(); Thing.prototype = 1337; t.should.be.an.instanceof(Thing); - }, expectedError, true); + }, 'The instanceof assertion needs a constructor but function was given.', true); if (typeof Symbol !== 'undefined' && typeof Symbol.hasInstance !== 'undefined') { err(function(){ diff --git a/test/utilities.js b/test/utilities.js index 58b43c48e..50963f2f1 100644 --- a/test/utilities.js +++ b/test/utilities.js @@ -132,8 +132,8 @@ describe('utilities', function () { }); it('addMethod returns new assertion with flags copied over', function () { - assertion1 = expect('foo'); - assertion2 = assertion1.to.returnNewAssertion(); + var assertion1 = expect('foo'); + var assertion2 = assertion1.to.returnNewAssertion(); // Checking if a new assertion was returned expect(assertion1).to.not.be.equal(assertion2); @@ -413,8 +413,8 @@ describe('utilities', function () { }); it('addProperty returns a new assertion with flags copied over', function () { - assertion1 = expect('foo'); - assertion2 = assertion1.is.thing; + var assertion1 = expect('foo'); + var assertion2 = assertion1.is.thing; // Checking if a new assertion was returned expect(assertion1).to.not.be.equal(assertion2); @@ -829,8 +829,9 @@ describe('utilities', function () { new chai.Assertion(this._obj).to.be.equal('x'); } , function () { - this._obj = this._obj || {}; - this._obj.__x = 'X!' + if (this._obj === Object(this._obj)) { + this._obj.__x = 'X!' + } } ); @@ -939,8 +940,9 @@ describe('utilities', function () { new chai.Assertion(this._obj).to.be.equal('x'); } , function () { - this._obj = this._obj || {}; - this._obj.__x = 'X!' + if (this._obj === Object(this._obj)) { + this._obj.__x = 'X!' + } } );