assert: Simplify AssertError creation

This commit is contained in:
isaacs 2013-04-03 09:43:17 -07:00
parent 9f65b1edf7
commit 4716dc662d

View File

@ -38,16 +38,14 @@ var assert = module.exports = ok;
// expected: expected })
assert.AssertionError = function AssertionError(options) {
this.name = 'AssertionError';
this.message = options.message;
this.actual = options.actual;
this.expected = options.expected;
this.operator = options.operator;
var stackStartFunction = options.stackStartFunction || fail;
if (Error.captureStackTrace) {
Error.captureStackTrace(this, stackStartFunction);
}
this.name = getName(this, options.message);
Error.captureStackTrace(this, stackStartFunction);
};
// assert.AssertionError instanceof Error
@ -74,18 +72,16 @@ function truncate(s, n) {
}
}
assert.AssertionError.prototype.toString = function() {
if (this.message) {
return [this.name + ':', this.message].join(' ');
function getName(self, message) {
if (message) {
return 'AssertionError: ' + message;
} else {
return [
this.name + ':',
truncate(JSON.stringify(this.actual, replacer), 128),
this.operator,
truncate(JSON.stringify(this.expected, replacer), 128)
].join(' ');
return 'AssertionError: ' +
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
// understood by the spec. Implementations or sub modules can pass