create-react-app-typescript icon indicating copy to clipboard operation
create-react-app-typescript copied to clipboard

displayName for components not set during testing

Open dreamawakening opened this issue 7 years ago • 0 comments

Is this a bug report?

Yes.

Environment

  1. react-scripts-ts version: [email protected]
  2. node -v: v8.10.0
  3. npm -v: 6.4.1
  4. yarn --version: 1.10.1
  5. enzyme version: 3.7.0
  6. enzyme-adapter-react-16 version: ^1.6.0

Operating system: Ubuntu 18.04.1

Steps to Reproduce

  1. Create a functional React component:
import React from 'react';

export const TestComponent = () => (
  <div>
    test
  </div>
);
  1. Create a test for the component:
console.log(component.debug());
console.log(TestComponent.displayName);
expect(component.find('TestComponent')).toHaveLength(1);

Expected Behavior

Enzyme should be able to find the component using its displayName (TestComponent).

Actual Behavior

Enzyme can't find the component because it doesn't have a displayName. The output of debug() prints <Component /> instead of the component's actual name.

Other notes

This works fine during development; if I inspect my React tree using React Developer Tools the component name shows correctly. The displayName just isn't being set during testing.

Let me know if you need more details. Thanks!

dreamawakening avatar Oct 12 '18 03:10 dreamawakening