Jest basics: Testing function from component

Viewed 35906

I have a basic function:

components/FirstComponent:

sayMyName = (fruit) => {
    alert("Hello, I'm " + fruit);
    return fruit;
}

When I try to test it with Jest inside FirstComponent.test.js:

import FirstComponent from '../components/FirstComponent';

describe('<FirstComponent />', () => {
    it('tests the only function', () => {
        FirstComponent.sayMyName = jest.fn();
        const value = FirstComponent.sayMyName('orange');
        expect(value).toBe('orange');
    });
});

Test says: Comparing two different types of values. Expected string but received undefined.

Apparently I'm not importing the function to test the right way?

I was not smart enough to understand the Jest documents how to test functions from components..

Is there some simple way to import function from component and test it?

Edit: This works now using the 'react-test-renderer'

import FirstComponent from '../components/FirstComponent';
import renderer from 'react-test-renderer';

describe('<FirstComponent /> functions', () => {
        it('test the only function', () => {
            const wrapper = renderer.create(<FirstComponent />);
            const inst = wrapper.getInstance();
            expect(inst.sayMyName('orange')).toMatchSnapshot();
        });
})
1 Answers
Related