Running the above test will result in an error
However, if you skip "render Component" or change the import path of Component, the test will work correctly.
Component is imported using index.ts, so it is possible that the error occurs there.
However, if we remove the use of jotai's atom in Component, the test works fine.
It is possible that the error is caused by jotai.
ERROR:
Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check your code at App.tsx:4.
at App
Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check your code at App.tsx:4.
at App
Error: Uncaught [Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.]
at reportException (news-app\node_modules\jsdom\lib\jsdom\living\helpers\runtime-script-errors.js:66:24)
at innerInvokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:353:9)
at invokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:286:3)
at HTMLUnknownElementImpl._dispatch (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:233:9)
at HTMLUnknownElementImpl.dispatchEvent (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:104:17)
at HTMLUnknownElement.dispatchEvent (news-app\node_modules\jsdom\lib\jsdom\living\generated\EventTarget.js:241:34)
at Object.invokeGuardedCallbackDev (news-app\node_modules\react-dom\cjs\react-dom.development.js:4213:16)
at invokeGuardedCallback (news-app\node_modules\react-dom\cjs\react-dom.development.js:4277:31)
at beginWork$1 (news-app\node_modules\react-dom\cjs\react-dom.development.js:27451:7)
at performUnitOfWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:26560:12) Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
at createFiberFromTypeAndProps (news-app\node_modules\react-dom\cjs\react-dom.development.js:28439:17)
at createFiberFromElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:28465:15)
at reconcileSingleElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:15750:23)
at reconcileChildFibers (news-app\node_modules\react-dom\cjs\react-dom.development.js:15808:35)
at reconcileChildren (news-app\node_modules\react-dom\cjs\react-dom.development.js:19167:28)
at mountIndeterminateComponent (news-app\node_modules\react-dom\cjs\react-dom.development.js:20157:5)
at beginWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:21587:16)
at HTMLUnknownElement.callCallback (news-app\node_modules\react-dom\cjs\react-dom.development.js:4164:14)
at HTMLUnknownElement.callTheUserObjectsOperation (news-app\node_modules\jsdom\lib\jsdom\living\generated\EventListener.js:26:30)
at innerInvokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:350:25)
Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check your code at App.tsx:4.
at App
Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check your code at App.tsx:4.
at App
Error: Uncaught [Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.]
at reportException (news-app\node_modules\jsdom\lib\jsdom\living\helpers\runtime-script-errors.js:66:24)
at innerInvokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:353:9)
at invokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:286:3)
at HTMLUnknownElementImpl._dispatch (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:233:9)
at HTMLUnknownElementImpl.dispatchEvent (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:104:17)
at HTMLUnknownElement.dispatchEvent (news-app\node_modules\jsdom\lib\jsdom\living\generated\EventTarget.js:241:34)
at Object.invokeGuardedCallbackDev (news-app\node_modules\react-dom\cjs\react-dom.development.js:4213:16)
at invokeGuardedCallback (news-app\node_modules\react-dom\cjs\react-dom.development.js:4277:31)
at beginWork$1 (news-app\node_modules\react-dom\cjs\react-dom.development.js:27451:7)
at performUnitOfWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:26560:12) Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
at createFiberFromTypeAndProps (news-app\node_modules\react-dom\cjs\react-dom.development.js:28439:17)
at createFiberFromElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:28465:15)
at reconcileSingleElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:15750:23)
at reconcileChildFibers (news-app\node_modules\react-dom\cjs\react-dom.development.js:15808:35)
at reconcileChildren (news-app\node_modules\react-dom\cjs\react-dom.development.js:19167:28)
at mountIndeterminateComponent (news-app\node_modules\react-dom\cjs\react-dom.development.js:20157:5)
at beginWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:21587:16)
at HTMLUnknownElement.callCallback (news-app\node_modules\react-dom\cjs\react-dom.development.js:4164:14)
at HTMLUnknownElement.callTheUserObjectsOperation (news-app\node_modules\jsdom\lib\jsdom\living\generated\EventListener.js:26:30)
at innerInvokeEventListeners (news-app\node_modules\jsdom\lib\jsdom\living\events\EventTarget-impl.js:350:25)
The above error occurred in the <App> component:
at App
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
at createFiberFromTypeAndProps (news-app\node_modules\react-dom\cjs\react-dom.development.js:28439:17)
at createFiberFromElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:28465:15)
at reconcileSingleElement (news-app\node_modules\react-dom\cjs\react-dom.development.js:15750:23)
at reconcileChildFibers (news-app\node_modules\react-dom\cjs\react-dom.development.js:15808:35)
at reconcileChildren (news-app\node_modules\react-dom\cjs\react-dom.development.js:19167:28)
at mountIndeterminateComponent (news-app\node_modules\react-dom\cjs\react-dom.development.js:20157:5)
at beginWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:21587:16)
at beginWork$1 (news-app\node_modules\react-dom\cjs\react-dom.development.js:27426:14)
at performUnitOfWork (news-app\node_modules\react-dom\cjs\react-dom.development.js:26560:12)
at workLoopSync (news-app\node_modules\react-dom\cjs\react-dom.development.js:26466:5)
Describe the bug
With the above configuration, using @testing-library/react,
Running the above test will result in an error However, if you skip "render Component" or change the import path of Component, the test will work correctly. Component is imported using index.ts, so it is possible that the error occurs there.
However, if we remove the use of jotai's atom in Component, the test works fine. It is possible that the error is caused by jotai.
ERROR:
Reproduction
https://github.com/maimai880/news-app/tree/issue%E6%8F%90%E5%87%BA%E7%94%A8
System Info
Used Package Manager
npm
Validations