57 lines
5.0 KiB
JavaScript
57 lines
5.0 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
}) : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.generate = void 0;
|
|
const jsdiff = __importStar(require("diff"));
|
|
const debug_1 = __importDefault(require("debug"));
|
|
const lodash_1 = require("lodash");
|
|
const colors_1 = require("./colors");
|
|
const util_1 = require("./util");
|
|
const information_message_1 = require("../../notifications/information-message");
|
|
const debugLogger = (0, debug_1.default)('testcafe:util:diff');
|
|
function unifiedDiff(actual, expected) {
|
|
const msg = jsdiff.createPatch('string', actual, expected);
|
|
// NOTE: Removing unimportant info from diff output
|
|
const lines = msg.split('\n').splice(5);
|
|
return lines
|
|
.filter(util_1.cleanUpFilter)
|
|
.map(colors_1.setColors)
|
|
.filter((line) => !(0, lodash_1.isUndefined)(line) && !(0, lodash_1.isNull)(line))
|
|
.join('\n');
|
|
}
|
|
function generate(actual, expected) {
|
|
try {
|
|
return unifiedDiff((0, util_1.stringify)(actual), (0, util_1.stringify)(expected));
|
|
}
|
|
catch (err) {
|
|
debugLogger((0, information_message_1.FAILED_TO_GENERATE_DETAILED_DIFF)(err.message));
|
|
return '';
|
|
}
|
|
}
|
|
exports.generate = generate;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZGlmZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUErQjtBQUMvQixrREFBMEI7QUFDMUIsbUNBQTZDO0FBQzdDLHFDQUFxQztBQUNyQyxpQ0FBa0Q7QUFDbEQsaUZBQTJGO0FBRTNGLE1BQU0sV0FBVyxHQUFHLElBQUEsZUFBSyxFQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFaEQsU0FBUyxXQUFXLENBQUUsTUFBYyxFQUFFLFFBQWdCO0lBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUUzRCxtREFBbUQ7SUFDbkQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsT0FBTyxLQUFLO1NBQ1AsTUFBTSxDQUFDLG9CQUFhLENBQUM7U0FDckIsR0FBRyxDQUFDLGtCQUFTLENBQUM7U0FDZCxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxlQUFNLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNkO0FBQ0wsQ0FBQztBQUVELFNBQWdCLFFBQVEsQ0FBRSxNQUFlLEVBQUUsUUFBaUI7SUFDeEQsSUFBSTtRQUNBLE9BQU8sV0FBVyxDQUFDLElBQUEsZ0JBQVMsRUFBQyxNQUFNLENBQUMsRUFBRSxJQUFBLGdCQUFTLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztLQUM5RDtJQUNELE9BQU8sR0FBUSxFQUFFO1FBQ2IsV0FBVyxDQUFDLElBQUEsc0RBQWdDLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFM0QsT0FBTyxFQUFFLENBQUM7S0FDYjtBQUNMLENBQUM7QUFURCw0QkFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGpzZGlmZiBmcm9tICdkaWZmJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNOdWxsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHNldENvbG9ycyB9IGZyb20gJy4vY29sb3JzJztcbmltcG9ydCB7IGNsZWFuVXBGaWx0ZXIsIHN0cmluZ2lmeSB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBGQUlMRURfVE9fR0VORVJBVEVfREVUQUlMRURfRElGRiB9IGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbnMvaW5mb3JtYXRpb24tbWVzc2FnZSc7XG5cbmNvbnN0IGRlYnVnTG9nZ2VyID0gZGVidWcoJ3Rlc3RjYWZlOnV0aWw6ZGlmZicpO1xuXG5mdW5jdGlvbiB1bmlmaWVkRGlmZiAoYWN0dWFsOiBzdHJpbmcsIGV4cGVjdGVkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1zZyA9IGpzZGlmZi5jcmVhdGVQYXRjaCgnc3RyaW5nJywgYWN0dWFsLCBleHBlY3RlZCk7XG5cbiAgICAvLyBOT1RFOiBSZW1vdmluZyB1bmltcG9ydGFudCBpbmZvIGZyb20gZGlmZiBvdXRwdXRcbiAgICBjb25zdCBsaW5lcyA9IG1zZy5zcGxpdCgnXFxuJykuc3BsaWNlKDUpO1xuXG4gICAgcmV0dXJuIGxpbmVzXG4gICAgICAgIC5maWx0ZXIoY2xlYW5VcEZpbHRlcilcbiAgICAgICAgLm1hcChzZXRDb2xvcnMpXG4gICAgICAgIC5maWx0ZXIoKGxpbmU6IGFueSkgPT4gIWlzVW5kZWZpbmVkKGxpbmUpICYmICFpc051bGwobGluZSkpXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlIChhY3R1YWw6IHVua25vd24sIGV4cGVjdGVkOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gdW5pZmllZERpZmYoc3RyaW5naWZ5KGFjdHVhbCksIHN0cmluZ2lmeShleHBlY3RlZCkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgZGVidWdMb2dnZXIoRkFJTEVEX1RPX0dFTkVSQVRFX0RFVEFJTEVEX0RJRkYoZXJyLm1lc3NhZ2UpKTtcblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuIl19
|