From b10cd7f0ade0486394261b304a9a75deb9f6b0ea Mon Sep 17 00:00:00 2001 From: Leonardo Balter Date: Tue, 21 Jan 2014 02:01:15 -0200 Subject: [PATCH] Assert: Extend throws to accept Error instances Fixes gh-476 Closes gh-506 --- src/assert.js | 6 ++++++ test/test.js | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/assert.js b/src/assert.js index c7e6740f1..b795a2f20 100644 --- a/src/assert.js +++ b/src/assert.js @@ -142,6 +142,12 @@ assert = QUnit.assert = { ok = true; expectedOutput = null; + // expected is an Error object + } else if ( expected instanceof Error ) { + ok = actual instanceof Error && + actual.name === expected.name && + actual.message === expected.message; + // expected is a regexp } else if ( QUnit.objectType( expected ) === "regexp" ) { ok = expected.test( errorString( actual ) ); diff --git a/test/test.js b/test/test.js index bc4c57e5a..8f3f9bb4d 100644 --- a/test/test.js +++ b/test/test.js @@ -497,7 +497,7 @@ test("propEqual", function( assert ) { }); test("throws", function( assert ) { - expect(9); + expect(10); function CustomError( message ) { this.message = message; } @@ -584,6 +584,14 @@ test("throws", function( assert ) { "some error description", "handle string typed thrown errors" ); + + assert.throws( + function() { + throw new Error( "foo" ); + }, + new Error( "foo" ), + "assert when a function throws an 'Error' object" + ); }); if (typeof document !== "undefined") {