const writeStringDifference = (out, actual, expected) => { const charDiffs = diffChars(actual, expected); const toRemove = charDiffs .filter(diff => !diff.added) .map(d => d.removed ? out.diffRemove(d.value) : out.diffSame(d.value)) .join(''); const toAdd = charDiffs .filter(diff => !diff.removed) .map(d => d.added ? out.diffAdd(d.value) : out.diffSame(d.value)) .join(''); out.writeBlock(`expected ${out.emphasis('string')} to be ${out.operator(expected)} but got the following differences:`, 4); out.writeBlock(`${out.error('-')} ${toRemove}`, 4); out.writeLine(`${out.success('+')} ${toAdd}`, 4); }
function unifiedDiff(err) { assert(err != null && typeof err === "object") assert(err.name === "AssertionError") var actual = inspect(err.actual) var expected = inspect(err.expected) var msg = diff.createPatch("string", actual, expected) var header = Console.newline + RUtil.color("diff added", "+ expected") + " " + RUtil.color("diff removed", "- actual") + Console.newline + Console.newline return header + msg.split(/\r?\n|\r/g).slice(4) .filter(function (line) { return !/^\@\@|^\\ No newline/.test(line) }) .map(function (line) { switch (line[0]) { case "+": return RUtil.color("diff added", line.trimRight()) case "-": return RUtil.color("diff removed", line.trimRight()) default: return line.trimRight() } }) .join(Console.newline) }
const writeObjectLikeDifference = type => (out, actual, expected) => { const diff = diffJson(actual, expected); const printDiffLines = diff => { if (diff.added) { return `${out.success('+')} ${' '.repeat(diff.padding)}${out.diffAdd(diff.value)}`; } if (diff.removed) { return `${out.error('-')} ${' '.repeat(diff.padding)}${out.diffRemove(diff.value)}`; } return ` ${' '.repeat(diff.padding)}${out.diffSame(diff.value)}`; }; const lineDiffs = diff .reduce(expandNewLines, []) .map(printDiffLines); out.writeBlock(`expected ${out.emphasis(type)} to be ${out.operator('EQUIVALENT')} but got the following differences:`, 4); out.writeLine(); for (const l of lineDiffs) { out.writeLine(l, 2); } }
var msg = diff.createPatch("string", actual, expected) .split(/\r?\n|\r/g).slice(4) .filter(function (line) { return !/^\@\@|^\\ No newline/.test(line) })
if(err) done(err); else{ var d = diff.diffChars(results[0], results[1]); assert.equal(d.length, 1); done(null); if(err) done(err); else{ var d = diff.diffChars(results[0], results[1]); assert.equal(d.length, 1); done(null); if(err) done(err); else{ var d = diff.diffChars(results[0], results[1]); assert.equal(d.length, 1); done(null); if(err) done(err); else{ var d = diff.diffChars(results[0], results[1]); assert.equal(d.length, 1); done(null);
let diff = o || n ? jsdiff.diffChars(o, n) : [];