diff --git a/packages/react-test-renderer/src/ReactTestRenderer.js b/packages/react-test-renderer/src/ReactTestRenderer.js
index 18a69c4202111..6cebfab39ce60 100644
--- a/packages/react-test-renderer/src/ReactTestRenderer.js
+++ b/packages/react-test-renderer/src/ReactTestRenderer.js
@@ -42,6 +42,7 @@ import {
ScopeComponent,
} from 'shared/ReactWorkTags';
import invariant from 'shared/invariant';
+import getComponentName from 'shared/getComponentName';
import ReactVersion from 'shared/ReactVersion';
import {getPublicInstance} from './ReactTestHostConfig';
@@ -346,7 +347,7 @@ class ReactTestInstance {
findByType(type: any): ReactTestInstance {
return expectOne(
this.findAllByType(type, {deep: false}),
- `with node type: "${type.displayName || type.name}"`,
+ `with node type: "${getComponentName(type) || 'Unknown'}"`,
);
}
diff --git a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js
index d9c8d5b1c5208..06f7131f2bd59 100644
--- a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js
+++ b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js
@@ -1022,4 +1022,14 @@ describe('ReactTestRenderer', () => {
expect(Scheduler).toFlushWithoutYielding();
ReactTestRenderer.create();
});
+
+ it('calling findByType() with an invalid component will fall back to "Unknown" for component name', () => {
+ const App = () => null;
+ const renderer = ReactTestRenderer.create();
+ const NonComponent = {};
+
+ expect(() => {
+ renderer.root.findByType(NonComponent);
+ }).toThrowError(`No instances found with node type: "Unknown"`);
+ });
});