UNPKG

rc-adminlte

Version:

AdminLTE template ported to React

96 lines (75 loc) 3.58 kB
import React from 'react'; import { mount, fireEvent } from '../../Enzyme'; import Select2 from './Select2'; import { simpleOptions, complexOptions, disabledOptions, getDOMNodeByClassName, getDOMNodeByQuerySelectorAll, getDOMNodeByQuerySelector, } from './InputTestUtilities'; import $ from 'jquery'; jest.dontMock('jquery'); describe('Select2 tests', () => { const getSelect2Container = p => getDOMNodeByClassName(p, 'select2-container'); const getSelect2Selection = p => getDOMNodeByQuerySelector(p, '.select2-selection__rendered'); const getHiddenAccessible = p => getDOMNodeByClassName(p, 'select2-hidden-accessible'); const getHiddenOptions = p => getDOMNodeByQuerySelectorAll(p, '.select2-hidden-accessible option'); const openDropdown = p => fireEvent(getSelect2Selection(p), 'mousedown'); it('renders', () => { const wrapper = mount(<Select2 />); expect(getSelect2Container(wrapper).length).toBe(1); }); it('renders name', () => { const wrapper = mount(<Select2 name="unittest" />); expect(wrapper.exists('select[name="unittest"]')).toBe(true); }); it('renders id', () => { const wrapper = mount(<Select2 id="unittest" />); expect(wrapper.exists('#unittest')).toBe(true); }); it('renders simple options', () => { const wrapper = mount(<Select2 options={simpleOptions} />); expect(getHiddenOptions(wrapper).length).toBe(2); }); it('renders complex options', () => { const wrapper = mount(<Select2 options={complexOptions} />); expect(getHiddenOptions(wrapper).length).toBe(2); }); it('opens dropdown on click', () => { const wrapper = mount(<Select2 options={simpleOptions} />); openDropdown(wrapper); expect(document.getElementsByClassName('select2-dropdown').length).toBe(1); expect(document.querySelectorAll('.select2-results > .select2-results__options > .select2-results__option').length).toBe(2); }); it('renders disabled options', () => { }); it('changes to disabled options', () => { }); it('renders disabled', () => { }); it('renders change to disabled', () => { }); it('renders change to enabled', () => { }); it('accepts default value', () => { }); it('renders selected value with simple option', () => { const changeAction = jest.fn(); const wrapper = mount(<Select2 options={simpleOptions} />); wrapper.setProps({ value: 'a' }); expect(getSelect2Selection(wrapper).textContent).toBe('a'); wrapper.setProps({ value: 'b' }); expect(getSelect2Selection(wrapper).textContent).toBe('b'); // wrapper.setProps({ value: null }); // expect(getSelect2Selection(wrapper).textContent).toBe(''); // const domResult = getSelect2Selection(wrapper).textContent; }); it('renders selected value with complex option', () => { }); // it('changes value on click', () => { // const changeAction = jest.fn(); // const wrapper = mount(<Select2 options={simpleOptions} onChange={changeAction} />); // openDropdown(wrapper); // fireEvent(document.querySelectorAll('.select2-results > .select2-results__options > .select2-results__option')[1], 'mouseover'); // fireEvent(document.querySelectorAll('.select2-results > .select2-results__options > .select2-results__option')[1], 'mouseup'); // expect(changeAction).toHaveBeenCalledTimes(1); // // expect(document.querySelectorAll('.select2-results > .select2-results__options > .select2-results__option')[0]).toBe(2); // }); });