UNPKG

earljs

Version:

Ergonomic, modern and type-safe assertion library

35 lines (34 loc) 1.22 kB
"use strict"; 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;