Skip to content

Commit

Permalink
console test utils fix: match entire string, not just first letter (#…
Browse files Browse the repository at this point in the history
…28855)

Fixes issue where if the first letter of the expected string appeared
anywhere in actual message, the assertion would pass, leading to false
negatives. We should check the entire expected string.

---------

Co-authored-by: Ricky <rickhanlonii@gmail.com>
  • Loading branch information
acdlite and rickhanlonii authored Apr 17, 2024
1 parent 4ca20fd commit f82051d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2129,6 +2129,28 @@ describe('ReactInternalTestUtils console assertions', () => {
`);
});

// @gate __DEV__
it('regression: checks entire string, not just the first letter', async () => {
const message = expectToThrowFailure(() => {
console.error('Message that happens to contain a "T"\n in div');

assertConsoleErrorDev([
'This is a completely different message that happens to start with "T"',
]);
});
expect(message).toMatchInlineSnapshot(`
"assertConsoleErrorDev(expected)
Unexpected error(s) recorded.
- Expected errors
+ Received errors
- This is a complete different message that happens to start with "T"
+ Message that happens to contain a "T" <component stack>"
`);
});

describe('global withoutStack', () => {
// @gate __DEV__
it('passes if errors without stack explicitly opt out', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/internal-test-utils/consoleMock.js
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ export function createLogAssertion(
expectedWithoutStack = expectedMessageOrArray[1].withoutStack;
} else if (typeof expectedMessageOrArray === 'string') {
// Should be in the form assert(['log']) or assert(['log'], {withoutStack: true})
expectedMessage = replaceComponentStack(expectedMessageOrArray[0]);
expectedMessage = replaceComponentStack(expectedMessageOrArray);
if (consoleMethod === 'log') {
expectedWithoutStack = true;
} else {
Expand Down

0 comments on commit f82051d

Please sign in to comment.