From a835a2fc47d55c95c03780a78af09f971637a351 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 18 Apr 2013 22:06:03 +0200 Subject: [PATCH 1/2] website: add link to nightlies on download page --- doc/download/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/download/index.html b/doc/download/index.html index 5de4deaca0d..3d8f3feacd6 100644 --- a/doc/download/index.html +++ b/doc/download/index.html @@ -141,6 +141,7 @@
  • Other release files
  • Other releases
  • +
  • Nightly builds
  • From 6101eb184db77d0b11eb96e48744e57ecce4b73d Mon Sep 17 00:00:00 2001 From: Ryan Doenges Date: Sat, 13 Apr 2013 18:48:00 -0700 Subject: [PATCH 2/2] assert: put info in err.message, not err.name 4716dc6 made assert.equal() and related functions work better by generating a better toString() from the expected, actual, and operator values passed to fail(). Unfortunately, this was accomplished by putting the generated message into the error's `name` property. When you passed in a custom error message, the error would put the custom error into `name` *and* `message`, resulting in helpful string representations like "AssertionError: Oh no: Oh no". This commit resolves that issue by storing the generated message in the `message` property while leaving the error's name alone and adding a regression test so that this doesn't pop back up later. Closes #5292. --- lib/assert.js | 18 ++++++------------ test/simple/test-assert.js | 13 +++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/assert.js b/lib/assert.js index 078efe39c77..8b6b49ae43b 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -38,13 +38,12 @@ var assert = module.exports = ok; // expected: expected }) assert.AssertionError = function AssertionError(options) { - this.message = options.message; + this.name = 'AssertionError'; this.actual = options.actual; this.expected = options.expected; this.operator = options.operator; + this.message = options.message || getMessage(this) var stackStartFunction = options.stackStartFunction || fail; - - this.name = getName(this, options.message); Error.captureStackTrace(this, stackStartFunction); }; @@ -72,15 +71,10 @@ function truncate(s, n) { } } -function getName(self, message) { - if (message) { - return 'AssertionError: ' + message; - } else { - return 'AssertionError: ' + - truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + - self.operator + ' ' + - truncate(JSON.stringify(self.expected, replacer), 128); - } +function getMessage(self) { + return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + + self.operator + ' ' + + truncate(JSON.stringify(self.expected, replacer), 128); } // At present only the three keys mentioned above are used and diff --git a/test/simple/test-assert.js b/test/simple/test-assert.js index 081eb76b653..2885858cf44 100644 --- a/test/simple/test-assert.js +++ b/test/simple/test-assert.js @@ -293,3 +293,16 @@ try { assert.equal(e.message, 'Missing expected exception..'); } assert.ok(threw); + +// #5292 +try { + assert.equal(1, 2); +} catch (e) { + assert.equal(e.toString().split('\n')[0], 'AssertionError: 1 == 2') +} + +try { + assert.equal(1, 2, 'oh no'); +} catch (e) { + assert.equal(e.toString().split('\n')[0], 'AssertionError: oh no') +}