mirror of
https://github.com/zebrajr/react.git
synced 2025-12-07 12:20:38 +01:00
## Overview Adds support for `ReactDOMClient` for `ServerIntegration*` tests. Also converts tests that pass without any other changes. Will follow up with other PRs for more complex cases.
66 lines
2.0 KiB
JavaScript
66 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
module.exports = function shouldIgnoreConsoleError(
|
|
format,
|
|
args,
|
|
{TODO_ignoreHydrationErrors} = {TODO_ignoreHydrationErrors: false}
|
|
) {
|
|
if (__DEV__) {
|
|
if (typeof format === 'string') {
|
|
if (format.indexOf('Error: Uncaught [') === 0) {
|
|
// This looks like an uncaught error from invokeGuardedCallback() wrapper
|
|
// in development that is reported by jsdom. Ignore because it's noisy.
|
|
return true;
|
|
}
|
|
if (format.indexOf('The above error occurred') === 0) {
|
|
// This looks like an error addendum from ReactFiberErrorLogger.
|
|
// Ignore it too.
|
|
return true;
|
|
}
|
|
if (
|
|
format.indexOf('ReactDOM.render is no longer supported in React 18') !==
|
|
-1 ||
|
|
format.indexOf(
|
|
'ReactDOM.hydrate is no longer supported in React 18'
|
|
) !== -1
|
|
) {
|
|
// We haven't finished migrating our tests to use createRoot.
|
|
return true;
|
|
}
|
|
if (
|
|
TODO_ignoreHydrationErrors &&
|
|
format.indexOf(
|
|
'An error occurred during hydration. The server HTML was replaced with client content in'
|
|
) !== -1
|
|
) {
|
|
// This also gets logged by onRecoverableError, so we can ignore it.
|
|
return true;
|
|
}
|
|
} else if (
|
|
format != null &&
|
|
typeof format.message === 'string' &&
|
|
typeof format.stack === 'string' &&
|
|
args.length === 0
|
|
) {
|
|
if (format.stack.indexOf('Error: Uncaught [') === 0) {
|
|
// This looks like an uncaught error from invokeGuardedCallback() wrapper
|
|
// in development that is reported by jest-environment-jsdom. Ignore because it's noisy.
|
|
return true;
|
|
}
|
|
}
|
|
} else {
|
|
if (
|
|
format != null &&
|
|
typeof format.message === 'string' &&
|
|
typeof format.stack === 'string' &&
|
|
args.length === 0
|
|
) {
|
|
// In production, ReactFiberErrorLogger logs error objects directly.
|
|
// They are noisy too so we'll try to ignore them.
|
|
return true;
|
|
}
|
|
}
|
|
// Looks legit
|
|
return false;
|
|
};
|