enzymejs / enzymejs/enzyme

ReactWrapper::state() can only be called on class components

Open
#2,263 9 comments 1 reaction 0 assignees View on GitHub
Need More Information Need To Reproduce
Dominant language
JavaScript
Stars
19.8k
Forks
2k
PR merge metrics
No merged PRs in 30d

Description

Writing unit testing in react using jest and enzyme. While checking with a component state , it throws an error "ReactWrapper::state() can only be called on class components ".
```jsx
import React from 'react';
import { mount } from 'enzyme';
import expect from 'expect';
import CustomerAdd from '../CustomerAdd'
import MUITheme from '../../../../Utilities/MUITheme';
import { ThemeProvider } from '@material-ui/styles';

describe('', () => {
const wrapper = mount(



);
test('something', () => {
expect(wrapper.find(CustomerAdd).state('addNewOnSubmit')).toEqual(true);
});
});
```
In the above code CustomerAdd Component is class component.I don't what wrong with my code. Can any one help me out of this problem. Thanks in advance.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported test with mount, ThemeProvider, CustomerAdd, and wrapper.find(CustomerAdd).state('addNewOnSubmit'). Then inspect the Enzyme ReactWrapper state behavior and the CustomerAdd component; the report does not name a repository file, failing test path, or acceptance condition, so the intended fix is not yet defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend, testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.