UNPKG

approvals

Version:

Approval Tests Library - Capturing Human Intelligence

51 lines (50 loc) 1.96 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const diff_1 = __importDefault(require("diff")); const AUtils_1 = require("../../AUtils"); const ConsoleUtils_1 = require("../../Utilities/ConsoleUtils"); class NodeDiffReporter { constructor() { this.name = "nodediff"; } canReportOn(fileName) { (0, AUtils_1.assertFileExists)(fileName); var isBinary = (0, AUtils_1.isBinaryFile)(fileName); if (isBinary) { return false; } return true; } report(approved, received, _options) { (0, AUtils_1.createEmptyFileIfNotExists)(approved); var approvedText = fs_1.default.readFileSync(approved).toString(); var receivedText = fs_1.default.readFileSync(received).toString(); console.log(`*******************************************`); console.log(`* Showing diff for ${approved} vs ${received}\n`); var diff = diff_1.default.diffChars(approvedText, receivedText); diff.forEach(function (part) { // green for additions, red for deletions // grey for common parts let text = ""; if (part.added) { text = (0, ConsoleUtils_1.greenText)(part.value); } else { if (part.removed) { text = (0, ConsoleUtils_1.redText)(part.value); } else { text = (0, ConsoleUtils_1.grayText)(part.value); } } process.stdout.write(text); }); console.log(`\n* End of diff for ${approved} vs ${received}`); console.log(`*******************************************\n\n`); } } exports.default = NodeDiffReporter;