Skip to content

Commit 7293c58

Browse files
BridgeARMylesBorins
authored andcommitted
assert: make skipping indicator blue
If lines gets skipped, they are marked with three dots. This makes sure they are better visualized to distinguish them from everything else. PR-URL: #20315 Reviewed-By: Daniel Bevenius <[email protected]>
1 parent f5054d3 commit 7293c58

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

lib/internal/errors.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const kInfo = Symbol('info');
1515
const messages = new Map();
1616
const codes = {};
1717

18+
let blue = '';
1819
let green = '';
1920
let red = '';
2021
let white = '';
@@ -259,7 +260,7 @@ function createErrDiff(actual, expected, operator) {
259260
const expectedLines = inspectValue(expected);
260261
const msg = READABLE_OPERATOR[operator] +
261262
`:\n${green}+ expected${white} ${red}- actual${white}`;
262-
const skippedMsg = ' ... Lines skipped';
263+
const skippedMsg = ` ${blue}...${white} Lines skipped`;
263264

264265
// Remove all ending lines that match (this optimizes the output for
265266
// readability by reducing the number of total changed lines).
@@ -280,7 +281,7 @@ function createErrDiff(actual, expected, operator) {
280281
b = expectedLines[expectedLines.length - 1];
281282
}
282283
if (i > 3) {
283-
end = `\n...${end}`;
284+
end = `\n${blue}...${white}${end}`;
284285
skipped = true;
285286
}
286287
if (other !== '') {
@@ -297,7 +298,7 @@ function createErrDiff(actual, expected, operator) {
297298
if (actualLines.length < i + 1) {
298299
if (cur > 1 && i > 2) {
299300
if (cur > 4) {
300-
res += '\n...';
301+
res += `\n${blue}...${white}`;
301302
skipped = true;
302303
} else if (cur > 3) {
303304
res += `\n ${expectedLines[i - 2]}`;
@@ -313,7 +314,7 @@ function createErrDiff(actual, expected, operator) {
313314
} else if (expectedLines.length < i + 1) {
314315
if (cur > 1 && i > 2) {
315316
if (cur > 4) {
316-
res += '\n...';
317+
res += `\n${blue}...${white}`;
317318
skipped = true;
318319
} else if (cur > 3) {
319320
res += `\n ${actualLines[i - 2]}`;
@@ -329,7 +330,7 @@ function createErrDiff(actual, expected, operator) {
329330
} else if (actualLines[i] !== expectedLines[i]) {
330331
if (cur > 1 && i > 2) {
331332
if (cur > 4) {
332-
res += '\n...';
333+
res += `\n${blue}...${white}`;
333334
skipped = true;
334335
} else if (cur > 3) {
335336
res += `\n ${actualLines[i - 2]}`;
@@ -354,7 +355,8 @@ function createErrDiff(actual, expected, operator) {
354355
}
355356
// Inspected object to big (Show ~20 rows max)
356357
if (printedLines > 20 && i < maxLines - 2) {
357-
return `${msg}${skippedMsg}\n${res}\n...${other}\n...`;
358+
return `${msg}${skippedMsg}\n${res}\n${blue}...${white}${other}\n` +
359+
`${blue}...${white}`;
358360
}
359361
}
360362

@@ -371,7 +373,7 @@ function createErrDiff(actual, expected, operator) {
371373
// Only remove lines in case it makes sense to collapse those.
372374
// TODO: Accept env to always show the full error.
373375
if (actualLines.length > 30) {
374-
actualLines[26] = '...';
376+
actualLines[26] = `${blue}...${white}`;
375377
while (actualLines.length > 27) {
376378
actualLines.pop();
377379
}
@@ -402,10 +404,12 @@ class AssertionError extends Error {
402404
// Reset on each call to make sure we handle dynamically set environment
403405
// variables correct.
404406
if (process.stdout.getColorDepth() !== 1) {
407+
blue = '\u001b[34m';
405408
green = '\u001b[32m';
406409
white = '\u001b[39m';
407410
red = '\u001b[31m';
408411
} else {
412+
blue = '';
409413
green = '';
410414
white = '';
411415
red = '';
@@ -435,7 +439,7 @@ class AssertionError extends Error {
435439
// Only remove lines in case it makes sense to collapse those.
436440
// TODO: Accept env to always show the full error.
437441
if (res.length > 30) {
438-
res[26] = '...';
442+
res[26] = `${blue}...${white}`;
439443
while (res.length > 27) {
440444
res.pop();
441445
}

test/pseudo-tty/test-assert-colors.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ const assert = require('assert').strict;
55
try {
66
// Activate colors even if the tty does not support colors.
77
process.env.COLORTERM = '1';
8-
assert.deepStrictEqual([1, 2], [2, 2]);
8+
assert.deepStrictEqual([1, 2, 2, 2], [2, 2, 2, 2]);
99
} catch (err) {
1010
const expected = 'Input A expected to strictly deep-equal input B:\n' +
11-
'\u001b[32m+ expected\u001b[39m \u001b[31m- actual\u001b[39m\n\n' +
11+
'\u001b[32m+ expected\u001b[39m \u001b[31m- actual\u001b[39m' +
12+
' \u001b[34m...\u001b[39m Lines skipped\n\n' +
1213
' [\n' +
1314
'\u001b[31m-\u001b[39m 1,\n' +
1415
'\u001b[32m+\u001b[39m 2,\n' +
16+
' 2,\n' +
17+
'\u001b[34m...\u001b[39m\n' +
1518
' 2\n' +
1619
' ]';
1720
assert.strictEqual(err.message, expected);

0 commit comments

Comments
 (0)