@typed/test
Version:
Simple test framework
40 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var typed_colors_1 = require("typed-colors");
var diff_1 = require("diff");
function createDiff(assertionError) {
var message = assertionError.message, actual = assertionError.actual, expected = assertionError.expected;
var str = typed_colors_1.bold("AssertionError: " + message + "\n") + (" " + typed_colors_1.red('- expected') + " " + typed_colors_1.green('+ actual') + "\n\n");
if (typeof actual === 'object' && typeof expected === 'object')
str += formatDiff(diff_1.diffJson(actual, expected));
else
str += JSON.stringify(expected) + " !== " + JSON.stringify(actual) + "\n";
return str;
}
exports.createDiff = createDiff;
function formatDiff(diffResults) {
var diffString = ' ';
for (var _i = 0, diffResults_1 = diffResults; _i < diffResults_1.length; _i++) {
var result = diffResults_1[_i];
if (!result.hasOwnProperty('added') && !result.hasOwnProperty('removed')) {
diffString += "" + result.value;
}
else {
var removed = result.removed, value = result.value;
if (removed) {
diffString += typed_colors_1.green('+') + " " + dropFirstTwoSpaces(value);
}
else {
diffString += typed_colors_1.red('-') + " " + dropFirstTwoSpaces(value);
}
}
}
return padNewLine(diffString) + '\n';
}
function padNewLine(str) {
return str.replace(/(\n)/g, "\n ");
}
function dropFirstTwoSpaces(str) {
return str.slice(2);
}
//# sourceMappingURL=createDiff.js.map