Skip to content

Commit 5cc9f69

Browse files
authored
Fix assertConsoleErrorDev on message mismatch with withoutStack: true (#29198)
## Summary ```js assertConsoleErrorDev([ ['Hello', {withoutStack: true}] ]) ``` now errors with a helpful diff message if the message mismatched. See first commit for previous behavior. ## How did you test this change? - `yarn test --watch packages/internal-test-utils/__tests__/ReactInternalTestUtils-test.js`
1 parent 7621466 commit 5cc9f69

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

packages/internal-test-utils/__tests__/ReactInternalTestUtils-test.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2417,6 +2417,32 @@ describe('ReactInternalTestUtils console assertions', () => {
24172417
If all errors should include the component stack, you may need to remove {withoutStack: true} from the assertConsoleErrorDev call."
24182418
`);
24192419
});
2420+
2421+
// @gate __DEV__
2422+
it('fails with a helpful error message if the expected error message mismatches', () => {
2423+
const message = expectToThrowFailure(() => {
2424+
console.error('Bye\n in div');
2425+
assertConsoleErrorDev([
2426+
[
2427+
'Hello',
2428+
{
2429+
withoutStack: true,
2430+
},
2431+
],
2432+
]);
2433+
});
2434+
expect(message).toMatchInlineSnapshot(`
2435+
"assertConsoleErrorDev(expected)
2436+
2437+
Unexpected error(s) recorded.
2438+
2439+
- Expected errors
2440+
+ Received errors
2441+
2442+
- Hello
2443+
+ Bye <component stack>"
2444+
`);
2445+
});
24202446
});
24212447

24222448
// @gate __DEV__

packages/internal-test-utils/consoleMock.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,12 @@ export function createLogAssertion(
464464
function printDiff() {
465465
return `${diff(
466466
expectedMessages
467-
.map(message => message.replace('\n', ' '))
467+
.map(messageOrTuple => {
468+
const message = Array.isArray(messageOrTuple)
469+
? messageOrTuple[0]
470+
: messageOrTuple;
471+
return message.replace('\n', ' ');
472+
})
468473
.join('\n'),
469474
receivedLogs.map(message => message.replace('\n', ' ')).join('\n'),
470475
{

0 commit comments

Comments
 (0)