From 1cc4e302f9f4267192410359ef5307c9769e4268 Mon Sep 17 00:00:00 2001 From: Keith Grant Date: Mon, 13 Jan 2020 12:53:38 -0800 Subject: [PATCH] update tests to check for PF Select --- .../MultiSelect/TagMultiSelect.test.jsx | 23 ++++++++--------- .../Template/shared/LabelSelect.test.jsx | 25 +++++++++++-------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/awx/ui_next/src/components/MultiSelect/TagMultiSelect.test.jsx b/awx/ui_next/src/components/MultiSelect/TagMultiSelect.test.jsx index 41f4aa5540..0e19d31c5d 100644 --- a/awx/ui_next/src/components/MultiSelect/TagMultiSelect.test.jsx +++ b/awx/ui_next/src/components/MultiSelect/TagMultiSelect.test.jsx @@ -3,19 +3,22 @@ import { mount } from 'enzyme'; import TagMultiSelect from './TagMultiSelect'; describe('', () => { - it('should render MultiSelect', () => { + it('should render Select', () => { const wrapper = mount( ); - expect(wrapper.find('MultiSelect').prop('options')).toEqual([ - { id: 'foo', name: 'foo' }, - { id: 'bar', name: 'bar' }, - ]); + wrapper.find('input').simulate('focus'); + const options = wrapper.find('SelectOption'); + 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', () => { const wrapper = mount(); - 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', () => { @@ -23,13 +26,9 @@ describe('', () => { const wrapper = mount( ); + wrapper.find('input').simulate('focus'); - const select = wrapper.find('MultiSelect'); - select.invoke('onChange')([ - { name: 'foo' }, - { name: 'bar' }, - { name: 'baz' }, - ]); + wrapper.find('Select').invoke('onSelect')(null, 'baz'); expect(onChange).toHaveBeenCalledWith('foo,bar,baz'); }); }); diff --git a/awx/ui_next/src/screens/Template/shared/LabelSelect.test.jsx b/awx/ui_next/src/screens/Template/shared/LabelSelect.test.jsx index c4cc7ef8a1..88a76ae570 100644 --- a/awx/ui_next/src/screens/Template/shared/LabelSelect.test.jsx +++ b/awx/ui_next/src/screens/Template/shared/LabelSelect.test.jsx @@ -19,12 +19,16 @@ describe('', () => { }); let wrapper; await act(async () => { - wrapper = mount( {}} />); + wrapper = mount( + {}} onChange={() => {}} /> + ); }); - wrapper.update(); - 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 () => { @@ -36,19 +40,20 @@ describe('', () => { }); LabelsAPI.read.mockReturnValueOnce({ data: { - results: options, + results: [{ id: 3, name: 'three' }, { id: 4, name: 'four' }], }, }); let wrapper; await act(async () => { - wrapper = mount( {}} />); + wrapper = mount( + {}} onChange={() => {}} /> + ); }); wrapper.update(); expect(LabelsAPI.read).toHaveBeenCalledTimes(2); - expect(wrapper.find('MultiSelect').prop('options')).toEqual([ - ...options, - ...options, - ]); + wrapper.find('input').simulate('focus'); + const selectOptions = wrapper.find('SelectOption'); + expect(selectOptions).toHaveLength(4); }); });