update tests to check for PF Select

This commit is contained in:
Keith Grant
2020-01-13 12:53:38 -08:00
parent 1289ca9103
commit 1cc4e302f9
2 changed files with 26 additions and 22 deletions

View File

@@ -3,19 +3,22 @@ import { mount } from 'enzyme';
import TagMultiSelect from './TagMultiSelect'; import TagMultiSelect from './TagMultiSelect';
describe('<TagMultiSelect />', () => { describe('<TagMultiSelect />', () => {
it('should render MultiSelect', () => { it('should render Select', () => {
const wrapper = mount( const wrapper = mount(
<TagMultiSelect value="foo,bar" onChange={jest.fn()} /> <TagMultiSelect value="foo,bar" onChange={jest.fn()} />
); );
expect(wrapper.find('MultiSelect').prop('options')).toEqual([ wrapper.find('input').simulate('focus');
{ id: 'foo', name: 'foo' }, const options = wrapper.find('SelectOption');
{ id: 'bar', name: 'bar' }, expect(options).toHaveLength(2);
]); expect(options.at(0).prop('value')).toEqual('foo');
expect(options.at(1).prop('value')).toEqual('bar');
}); });
it('should not treat empty string as an option', () => { it('should not treat empty string as an option', () => {
const wrapper = mount(<TagMultiSelect value="" onChange={jest.fn()} />); const wrapper = mount(<TagMultiSelect value="" onChange={jest.fn()} />);
expect(wrapper.find('MultiSelect').prop('options')).toEqual([]); wrapper.find('input').simulate('focus');
expect(wrapper.find('Select').prop('isExpanded')).toEqual(true);
expect(wrapper.find('SelectOption')).toHaveLength(0);
}); });
it('should trigger onChange', () => { it('should trigger onChange', () => {
@@ -23,13 +26,9 @@ describe('<TagMultiSelect />', () => {
const wrapper = mount( const wrapper = mount(
<TagMultiSelect value="foo,bar" onChange={onChange} /> <TagMultiSelect value="foo,bar" onChange={onChange} />
); );
wrapper.find('input').simulate('focus');
const select = wrapper.find('MultiSelect'); wrapper.find('Select').invoke('onSelect')(null, 'baz');
select.invoke('onChange')([
{ name: 'foo' },
{ name: 'bar' },
{ name: 'baz' },
]);
expect(onChange).toHaveBeenCalledWith('foo,bar,baz'); expect(onChange).toHaveBeenCalledWith('foo,bar,baz');
}); });
}); });

View File

@@ -19,12 +19,16 @@ describe('<LabelSelect />', () => {
}); });
let wrapper; let wrapper;
await act(async () => { await act(async () => {
wrapper = mount(<LabelSelect value={[]} onError={() => {}} />); wrapper = mount(
<LabelSelect value={[]} onError={() => {}} onChange={() => {}} />
);
}); });
wrapper.update();
expect(LabelsAPI.read).toHaveBeenCalledTimes(1); expect(LabelsAPI.read).toHaveBeenCalledTimes(1);
expect(wrapper.find('MultiSelect').prop('options')).toEqual(options); wrapper.find('input').simulate('focus');
const selectOptions = wrapper.find('SelectOption');
expect(selectOptions).toHaveLength(2);
expect(selectOptions.at(0).prop('value')).toEqual(options[0]);
expect(selectOptions.at(1).prop('value')).toEqual(options[1]);
}); });
test('should fetch two pages labels if present', async () => { test('should fetch two pages labels if present', async () => {
@@ -36,19 +40,20 @@ describe('<LabelSelect />', () => {
}); });
LabelsAPI.read.mockReturnValueOnce({ LabelsAPI.read.mockReturnValueOnce({
data: { data: {
results: options, results: [{ id: 3, name: 'three' }, { id: 4, name: 'four' }],
}, },
}); });
let wrapper; let wrapper;
await act(async () => { await act(async () => {
wrapper = mount(<LabelSelect value={[]} onError={() => {}} />); wrapper = mount(
<LabelSelect value={[]} onError={() => {}} onChange={() => {}} />
);
}); });
wrapper.update(); wrapper.update();
expect(LabelsAPI.read).toHaveBeenCalledTimes(2); expect(LabelsAPI.read).toHaveBeenCalledTimes(2);
expect(wrapper.find('MultiSelect').prop('options')).toEqual([ wrapper.find('input').simulate('focus');
...options, const selectOptions = wrapper.find('SelectOption');
...options, expect(selectOptions).toHaveLength(4);
]);
}); });
}); });