Skip to content

Commit be3c4a1

Browse files
committed
Clearer messages for Node assert errors
1 parent e740de2 commit be3c4a1

File tree

4 files changed

+29
-29
lines changed

4 files changed

+29
-29
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
- `[@jest/core, @jest/test-sequencer]` Support async sort in custom `testSequencer` ([#8642](https://github.com/facebook/jest/pull/8642))
2222
- `[jest-runtime, @jest/fake-timers]` Add `jest.advanceTimersToNextTimer` ([#8713](https://github.com/facebook/jest/pull/8713))
2323
- `[@jest-transform]` Extract transforming require logic within `jest-core` into `@jest-transform` ([#8756](https://github.com/facebook/jest/pull/8756))
24+
- `[jest-circus/jest-jasmine2]` Give clearer output for Node assert errors ([#8792](https://github.com/facebook/jest/pull/8792))
2425

2526
### Fixes
2627

e2e/__tests__/__snapshots__/failures.test.ts.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ FAIL __tests__/assertionError.test.js
399399
400400
● assert
401401
402-
assert.equal(received, expected) or assert(received)
402+
assert(received)
403403
404404
Expected value to be equal to:
405405
true
@@ -418,7 +418,7 @@ FAIL __tests__/assertionError.test.js
418418
419419
assert with a message
420420
421-
assert.equal(received, expected) or assert(received)
421+
assert(received)
422422
423423
Expected value to be equal to:
424424
true
@@ -440,7 +440,7 @@ FAIL __tests__/assertionError.test.js
440440
441441
assert.ok
442442
443-
assert.equal(received, expected) or assert(received)
443+
assert(received)
444444
445445
Expected value to be equal to:
446446
true
@@ -459,7 +459,7 @@ FAIL __tests__/assertionError.test.js
459459
460460
assert.ok with a message
461461
462-
assert.equal(received, expected) or assert(received)
462+
assert(received)
463463
464464
Expected value to be equal to:
465465
true
@@ -481,7 +481,7 @@ FAIL __tests__/assertionError.test.js
481481
482482
assert.equal
483483
484-
assert.equal(received, expected) or assert(received)
484+
assert.equal(received, expected)
485485
486486
Expected value to be equal to:
487487
2
@@ -747,7 +747,7 @@ FAIL __tests__/assertionError.test.js
747747
748748
async
749749
750-
assert.equal(received, expected) or assert(received)
750+
assert.equal(received, expected)
751751
752752
Expected value to be equal to:
753753
"hello"

packages/jest-circus/src/formatNodeAssertErrors.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,17 @@ const assertThrowingMatcherHint = (operatorName: string) =>
101101
const assertMatcherHint = (
102102
operator: string | undefined | null,
103103
operatorName: string,
104+
expected: unknown,
104105
) => {
105106
let message = '';
106107

107-
if (operatorName) {
108+
if (operator === '==' && expected === true) {
109+
message =
110+
chalk.dim('assert') +
111+
chalk.dim('(') +
112+
chalk.red('received') +
113+
chalk.dim(')');
114+
} else if (operatorName) {
108115
message =
109116
chalk.dim('assert') +
110117
chalk.dim('.' + operatorName + '(') +
@@ -114,15 +121,6 @@ const assertMatcherHint = (
114121
chalk.dim(')');
115122
}
116123

117-
if (operator === '==') {
118-
message +=
119-
' or ' +
120-
chalk.dim('assert') +
121-
chalk.dim('(') +
122-
chalk.red('received') +
123-
chalk.dim(') ');
124-
}
125-
126124
return message;
127125
};
128126

@@ -160,7 +158,7 @@ function assertionErrorMessage(
160158
}
161159

162160
return (
163-
buildHintString(assertMatcherHint(operator, operatorName)) +
161+
buildHintString(assertMatcherHint(operator, operatorName, expected)) +
164162
chalk.reset(`Expected value ${operatorMessage(operator)}`) +
165163
` ${printExpected(expected)}\n` +
166164
chalk.reset(`Received:\n`) +

packages/jest-jasmine2/src/assertionErrorMessage.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,20 @@ const assertThrowingMatcherHint = (operatorName: string) =>
6262
chalk.dim(')')
6363
: '';
6464

65-
const assertMatcherHint = (operator: string | null, operatorName: string) => {
65+
const assertMatcherHint = (
66+
operator: string | null,
67+
operatorName: string,
68+
expected: unknown,
69+
) => {
6670
let message = '';
6771

68-
if (operatorName) {
72+
if (operator === '==' && expected === true) {
73+
message =
74+
chalk.dim('assert') +
75+
chalk.dim('(') +
76+
chalk.red('received') +
77+
chalk.dim(')');
78+
} else if (operatorName) {
6979
message =
7080
chalk.dim('assert') +
7181
chalk.dim('.' + operatorName + '(') +
@@ -75,15 +85,6 @@ const assertMatcherHint = (operator: string | null, operatorName: string) => {
7585
chalk.dim(')');
7686
}
7787

78-
if (operator === '==') {
79-
message +=
80-
' or ' +
81-
chalk.dim('assert') +
82-
chalk.dim('(') +
83-
chalk.red('received') +
84-
chalk.dim(') ');
85-
}
86-
8788
return message;
8889
};
8990

@@ -121,7 +122,7 @@ function assertionErrorMessage(
121122
}
122123

123124
return (
124-
buildHintString(assertMatcherHint(operator, operatorName)) +
125+
buildHintString(assertMatcherHint(operator, operatorName, expected)) +
125126
chalk.reset(`Expected value ${operatorMessage(operator)}`) +
126127
` ${printExpected(expected)}\n` +
127128
chalk.reset(`Received:\n`) +

0 commit comments

Comments
 (0)