diff --git a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
index 9296c06646..c657b57c49 100644
--- a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
+++ b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
@@ -512,6 +512,36 @@ describe('ReactLazy', () => {
expect(root).toMatchRenderedOutput('Friends Bye');
});
+ it('throws with a useful error when wrapping lazy() multiple times', async () => {
+ const Lazy1 = lazy(() => fakeImport(Text));
+ const Lazy2 = lazy(() => fakeImport(Lazy1));
+
+ const root = ReactTestRenderer.create(
+ }>
+
+ ,
+ {
+ unstable_isConcurrent: true,
+ },
+ );
+
+ expect(root).toFlushAndYield(['Loading...']);
+ expect(root).toMatchRenderedOutput(null);
+
+ await Promise.resolve();
+ root.update(
+ }>
+
+ ,
+ );
+ expect(() => {
+ root.unstable_flushAll();
+ }).toThrow(
+ 'Element type is invalid. Received a promise that resolves to: [object Object]. ' +
+ 'Promise elements must resolve to a class or function.',
+ );
+ });
+
it('warns about defining propTypes on the outer wrapper', () => {
const LazyText = lazy(() => fakeImport(Text));
expect(() => {