{"record":{"id":"27f9e76426c3f42e","repo":"facebook/react","slug":"react-test-renderer-shallow-has-been-removed-see","errorCode":null,"errorMessage":"react-test-renderer/shallow has been removed. See https://react.dev/warnings/react-test-renderer.","messagePattern":"react-test-renderer/shallow has been removed\\. See https://react\\.dev/warnings/react-test-renderer\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/react-test-renderer/npm/shallow.js","lineNumber":4,"sourceCode":"'use strict';\n\nfunction ReactShallowRenderer() {\n  throw new Error(\n    'react-test-renderer/shallow has been removed. See https://react.dev/warnings/react-test-renderer.'\n  );\n}\n\nmodule.exports = ReactShallowRenderer;\n","sourceCodeStart":1,"sourceCodeEnd":10,"githubUrl":"https://github.com/facebook/react/blob/eafeac097ba51e1eab809c07102126bd5f8e5425/packages/react-test-renderer/npm/shallow.js#L1-L10","documentation":"react-test-renderer was deprecated and its shallow rendering entry point was removed in modern React versions. The npm/shallow.js stub exists only to throw immediately when the removed submodule is imported, pointing users at the deprecation notice.","triggerScenarios":"Executing import ShallowRenderer from 'react-test-renderer/shallow' (or require('react-test-renderer/shallow')) under React 19+, or calling the exported function.","commonSituations":"Upgrading a legacy Enzyme-style test suite or snapshot tests that relied on shallow rendering; transitive dependencies (old enzyme adapters) importing the submodule after a React major bump.","solutions":["Replace shallow-render assertions with the standalone community package react-shallow-renderer","Rewrite the tests with react-test-renderer's create() (full render) or @testing-library/react","Pin React 18 if the codebase cannot be migrated yet, as a temporary measure"],"exampleFix":"// before\nimport ShallowRenderer from 'react-test-renderer/shallow';\nconst renderer = new ShallowRenderer();\nrenderer.render(<MyComponent prop={1} />);\n\n// after\nimport ShallowRenderer from 'react-shallow-renderer';\nconst renderer = new ShallowRenderer();\nrenderer.render(<MyComponent prop={1} />);","handlingStrategy":"fallback","validationCode":"// Feature-detect before importing the removed submodule\nlet ShallowRenderer;\ntry {\n  ({default: ShallowRenderer} = await import('react-test-renderer/shallow'));\n} catch {\n  ({default: ShallowRenderer} = await import('react-shallow-renderer')); // community replacement\n}","typeGuard":null,"tryCatchPattern":"// Only if you must support both React versions\nlet renderer;\ntry {\n  const Mod = await import('react-test-renderer/shallow');\n  renderer = new Mod.default();\n} catch (e) {\n  if (/react-test-renderer\\/shallow has been removed/.test(e.message)) {\n    const {default: Shallow} = await import('react-shallow-renderer');\n    renderer = new Shallow();\n  } else {\n    throw e;\n  }\n}","preventionTips":["Migrate shallow tests to react-shallow-renderer or @testing-library/react before upgrading to React 19","Run a codemod/grep for 'react-test-renderer/shallow' as part of the React major upgrade checklist"],"tags":["react-test-renderer","shallow-rendering","react-19","removed-api","migration"],"backgroundTag":"removed-api-on-upgrade","analyzedSha":"eafeac097ba51e1eab809c07102126bd5f8e5425","analyzedAt":"2026-08-21T22:01:08.818Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}