FeaturePicker UT

This commit is contained in:
Virginie Ky 2019-07-25 18:50:40 +02:00
parent 5c8b368338
commit a99b241ab5

View File

@ -1,28 +1,81 @@
import React from 'react';
import Enzyme from 'enzyme';
import { shallow } from 'enzyme';
import { Dropdown, DropdownItem, DropdownToggle } from 'reactstrap';
import FeaturePicker from '../index';
describe('<FeaturePicker />', () => {
let wrapper;
const setOpen = jest.fn();
const useStateSpy = jest.spyOn(React, 'useState');
useStateSpy.mockImplementation(init => [init, setOpen]);
describe('CTB <FeaturePicker />', () => {
it('should use the defaultProps', () => {
const {
defaultProps: { onClick },
} = FeaturePicker;
beforeEach(() => {
wrapper = Enzyme.shallow(<FeaturePicker />);
expect(onClick).toBeDefined();
expect(onClick()).toBe(undefined);
});
describe('<FeaturePicker /> render', () => {
let wrapper;
const setOpen = jest.fn();
const useStateSpy = jest.spyOn(React, 'useState');
useStateSpy.mockImplementation(init => [init, setOpen]);
let props = {
features: [
{
icon: 'fa-cube',
name: 'group1',
description: '',
fields: 2,
source: null,
isTemporary: false,
},
{
icon: 'fa-cube',
name: 'group2',
description: '',
fields: 2,
source: null,
isTemporary: false,
},
],
};
afterEach(() => {
jest.clearAllMocks();
});
afterEach(() => {
jest.clearAllMocks();
});
it('should display source if it exists', () => {
props.main = true;
props.plugin = 'users-permissions';
describe('SetOpen', () => {
it('calls setOpen with true param', () => {
const buttonProps = wrapper.find('button').props();
wrapper = shallow(<FeaturePicker {...props} />);
buttonProps.onClick();
const span = wrapper
.find(DropdownToggle)
.find('p')
.at(0)
.find('span');
expect(span.text()).toContain('users-permissions');
});
it('should call setOpen with true param', () => {
wrapper = shallow(<FeaturePicker {...props} />);
const button = wrapper.find(Dropdown);
const { toggle } = button.props();
toggle();
expect(setOpen).toHaveBeenCalledWith(true);
});
it('should call onClick with true param on dropdown item click', () => {
props.selectedFeature = 'group2';
props.onClick = jest.fn();
wrapper = shallow(<FeaturePicker {...props} />);
const item = wrapper.find(DropdownItem).first();
item.simulate('click');
expect(props.onClick).toHaveBeenCalledWith(props.features[0]);
});
});
});