earljs
Version:
Ergonomic, modern and type-safe assertion library
35 lines (34 loc) • 1.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.AssertionError = void 0;
const os_1 = require("os");
/**
* Assertion error containing optional info about actual / expected value which
* can be used by test runners like Mocha to pretty print.
*/
class AssertionError extends Error {
constructor(options) {
let message = options.message;
if (options.extraMessage) {
message += os_1.EOL + 'Extra message: ' + options.extraMessage;
}
super(message);
this.name = 'AssertionError';
this.actual = options.actual;
this.expected = options.expected;
this.stack = `${this.name}: ${this.message}\n${options.stack}`;
}
static getCleanStack() {
// .<validator>, .getControl, new Control, .getCleanStack
const entriesToRemove = 4;
const stack = new Error('message').stack;
if (stack && stack.startsWith('Error: message\n')) {
return stack
.split('\n')
.slice(entriesToRemove + 1)
.join('\n');
}
return stack !== null && stack !== void 0 ? stack : '';
}
}
exports.AssertionError = AssertionError;
;