Skip to content

Commit 3d726d5

Browse files
committed
Just add a message at the bottom instead of replacing it
1 parent b02325a commit 3d726d5

2 files changed

Lines changed: 32 additions & 8 deletions

File tree

packages/jest-matchers/src/__tests__/__snapshots__/matchers.test.js.snap

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,27 @@ Received:
232232
exports[`.toBe() fails for: [] and [] 1`] = `
233233
"<dim>expect(<red>received</><dim>).toBe(<green>expected</><dim>)
234234

235-
Looks like you wanted to test for object/array equity with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
235+
Expected value to be (using ===):
236+
<green>[]</>
237+
Received:
238+
<red>[]</>
239+
240+
Difference:
241+
242+
<dim>Compared values have no visual difference. <dim>Looks like you wanted to test for object/array equality with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
236243
`;
237244

238245
exports[`.toBe() fails for: {"a": 1} and {"a": 1} 1`] = `
239246
"<dim>expect(<red>received</><dim>).toBe(<green>expected</><dim>)
240247

241-
Looks like you wanted to test for object/array equity with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
248+
Expected value to be (using ===):
249+
<green>{\\"a\\": 1}</>
250+
Received:
251+
<red>{\\"a\\": 1}</>
252+
253+
Difference:
254+
255+
<dim>Compared values have no visual difference. <dim>Looks like you wanted to test for object/array equality with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
242256
`;
243257

244258
exports[`.toBe() fails for: {"a": 1} and {"a": 5} 1`] = `
@@ -263,7 +277,14 @@ Difference:
263277
exports[`.toBe() fails for: {} and {} 1`] = `
264278
"<dim>expect(<red>received</><dim>).toBe(<green>expected</><dim>)
265279

266-
Looks like you wanted to test for object/array equity with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
280+
Expected value to be (using ===):
281+
<green>{}</>
282+
Received:
283+
<red>{}</>
284+
285+
Difference:
286+
287+
<dim>Compared values have no visual difference. <dim>Looks like you wanted to test for object/array equality with strict \`toBe\` matcher. You probably need to use \`toEqual\` instead."
267288
`;
268289

269290
exports[`.toBe() fails for: 1 and 2 1`] = `

packages/jest-matchers/src/matchers.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import type {MatchersObject} from 'types/Matchers';
1212

13+
import chalk from 'chalk';
1314
import diff from 'jest-diff';
1415
import getType from 'jest-get-type';
1516
import {escapeStrForRegex} from 'jest-regex-util';
@@ -67,29 +68,31 @@ const matchers: MatchersObject = {
6768
`Received:\n` +
6869
` ${printReceived(received)}`
6970
: () => {
71+
let suggestToEqual;
72+
7073
if (
7174
getType(received) === getType(expected) &&
7275
(getType(received) === 'object' || getType(expected) === 'array') &&
7376
equals(received, expected, [iterableEquality])
7477
) {
75-
return (
76-
matcherHint('.toBe') +
77-
'\n\n' +
78-
'Looks like you wanted to test for object/array equity with strict `toBe` matcher. You probably need to use `toEqual` instead.'
78+
suggestToEqual = chalk.dim(
79+
'Looks like you wanted to test for object/array equality with strict `toBe` matcher. You probably need to use `toEqual` instead.',
7980
);
8081
}
8182

8283
const diffString = diff(expected, received, {
8384
expand: this.expand,
8485
});
86+
8587
return (
8688
matcherHint('.toBe') +
8789
'\n\n' +
8890
`Expected value to be (using ===):\n` +
8991
` ${printExpected(expected)}\n` +
9092
`Received:\n` +
9193
` ${printReceived(received)}` +
92-
(diffString ? `\n\nDifference:\n\n${diffString}` : '')
94+
(diffString ? `\n\nDifference:\n\n${diffString}` : '') +
95+
(suggestToEqual ? ` ${suggestToEqual}` : '')
9396
);
9497
};
9598

0 commit comments

Comments
 (0)