UNPKG

react-spatial

Version:

Components to build React map apps.

97 lines (81 loc) 2.93 kB
import React from 'react'; import { configure, shallow } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import renderer from 'react-test-renderer'; import Select from './Select'; configure({ adapter: new Adapter() }); describe('Select', function () { describe('when no properties are set', function () { var spy = null; beforeEach(function () { window.console.error = jest.fn().mockImplementation(function () {}); spy = jest.spyOn(window.console, 'error'); }); afterEach(function () { spy.mockRestore(); window.console.error.mockRestore(); }); test('matches snapshot', function () { var component = renderer.create(React.createElement( Select, null )); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); }); describe('when options are strings', function () { var options = ['foo', 'bar', 'baz']; var onChange = function () {}; test('matches snapshot', function () { var component = renderer.create( React.createElement( Select, { options: options, value: "bar", onChange: function () {} }) ); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('executes onChange property function', function () { var onChangeMock = jest.fn(onChange); var wrapper = shallow( React.createElement( Select, { options: options, value: "baz", onChange: onChangeMock }) ); expect(onChangeMock).toHaveBeenCalledTimes(0); var evt = { target: { value: 'foo' } }; wrapper.find('select').simulate('change', evt); expect(onChangeMock).toHaveBeenCalledTimes(1); expect(onChangeMock).toHaveBeenCalledWith(evt, options[0]); }); }); describe('when options are objects with a value property.', function () { var options = [ { value: 'foo', label: 'qux', }, { value: 'bar', label: 'quux', }, { value: 'baz', label: 'corge', } ]; var onChange = function () {}; test('matches snapshot', function () { var component = renderer.create( React.createElement( Select, { options: options, value: options[1], onChange: function () {} }) ); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('executes onChange property function', function () { var onChangeMock = jest.fn(onChange); var wrapper = shallow( React.createElement( Select, { options: options, value: options[2], onChange: onChangeMock }) ); expect(onChangeMock).toHaveBeenCalledTimes(0); var evt = { target: { value: 'foo' } }; wrapper.find('select').simulate('change', evt); expect(onChangeMock).toHaveBeenCalledTimes(1); expect(onChangeMock).toHaveBeenCalledWith(evt, options[0]); }); }); }); //# sourceMappingURL=Select.test.js.map