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 <daniel.bevenius@gmail.com>
1 parent f5054d3 commit 7293c58

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

‎lib/internal/errors.js‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const kInfo = Symbol('info');
1515
constmessages=newMap();
1616
constcodes={};
1717

18+
letblue='';
1819
letgreen='';
1920
letred='';
2021
letwhite='';
@@ -259,7 +260,7 @@ function createErrDiff(actual, expected, operator) {
259260
constexpectedLines=inspectValue(expected);
260261
constmsg=READABLE_OPERATOR[operator]+
261262
`:\n${green}+ expected${white}${red}- actual${white}`;
262-
constskippedMsg=' ... Lines skipped';
263+
constskippedMsg=` ${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
}elseif(cur>3){
303304
res+=`\n ${expectedLines[i-2]}`;
@@ -313,7 +314,7 @@ function createErrDiff(actual, expected, operator) {
313314
}elseif(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
}elseif(cur>3){
319320
res+=`\n ${actualLines[i-2]}`;
@@ -329,7 +330,7 @@ function createErrDiff(actual, expected, operator) {
329330
}elseif(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
}elseif(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‎

Lines changed: 5 additions & 2 deletions
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
constexpected='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)