react-spatial
Version:
Components to build React map apps.
97 lines (81 loc) • 2.93 kB
JavaScript
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