From 66b8c3c5a03717f3ddc0399c063713e7f6f4ad10 Mon Sep 17 00:00:00 2001 From: Glen Mailer Date: Wed, 11 Sep 2013 17:18:25 +0100 Subject: [PATCH] assert: indicate if exception message is generated AssertionError.generatedMessage is now true when AssertionError.message was generated from expected and actual Fixes #5836, #6206 --- lib/assert.js | 8 +++++++- test/simple/test-assert.js | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/assert.js b/lib/assert.js index 1202f4b..5e9f78f 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -42,7 +42,13 @@ assert.AssertionError = function AssertionError(options) { this.actual = options.actual; this.expected = options.expected; this.operator = options.operator; - this.message = options.message || getMessage(this); + if (options.message) { + this.message = options.message; + this.generatedMessage = false; + } else { + this.message = getMessage(this); + this.generatedMessage = true; + } var stackStartFunction = options.stackStartFunction || fail; Error.captureStackTrace(this, stackStartFunction); }; diff --git a/test/simple/test-assert.js b/test/simple/test-assert.js index 2885858..91c8ef1 100644 --- a/test/simple/test-assert.js +++ b/test/simple/test-assert.js @@ -260,6 +260,7 @@ function testAssertionMessage(actual, expected) { } catch (e) { assert.equal(e.toString(), ['AssertionError:', expected, '==', '""'].join(' ')); + assert.ok(e.generatedMessage, "Message not marked as generated"); } } testAssertionMessage(undefined, '"undefined"'); @@ -299,10 +300,13 @@ try { assert.equal(1, 2); } catch (e) { assert.equal(e.toString().split('\n')[0], 'AssertionError: 1 == 2') + assert.ok(e.generatedMessage, 'Message not marked as generated'); } try { assert.equal(1, 2, 'oh no'); } catch (e) { assert.equal(e.toString().split('\n')[0], 'AssertionError: oh no') + assert.equal(e.generatedMessage, false, + 'Message incorrectly marked as generated'); } -- 2.7.4