UNPKG

react-spatial

Version:

Components to build React map apps.

89 lines (77 loc) 2.51 kB
import React from 'react'; import { configure, shallow, mount } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import renderer from 'react-test-renderer'; import SelectLinks from './SelectLinks'; configure({ adapter: new Adapter() }); describe('SelectLinks', 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('displays 3 errors in the console', function () { shallow(React.createElement( SelectLinks, null )); expect(spy).toHaveBeenCalledTimes(3); }); test('matches snapshot', function () { var component = renderer.create(React.createElement( SelectLinks, null )); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); }); describe('when properties are set', function () { var onClick = function () {}; var options = [ { title: 'foo', label: 'qux', }, { title: 'bar', label: 'quux', }, { title: 'baz', label: 'corge', } ]; test('matches snapshot', function () { var component = renderer.create( React.createElement( SelectLinks, { isSelected: function () { return false; }, options: options, onClick: onClick }) ); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('matches snapshot when a link is selected', function () { var component = renderer.create( React.createElement( SelectLinks, { isSelected: function (option) { return option.title === 'bar'; }, options: options, onClick: onClick }) ); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('can click a link', function () { var fn = jest.fn(onClick); var fn2 = jest.fn(); var evt = { preventDefault: fn2, stopPropagation: fn2, }; var wrapper = mount( React.createElement( SelectLinks, { isSelected: function () { return false; }, options: options, onClick: fn }) ); wrapper .find('a') .first() .simulate('click', evt); expect(fn).toHaveBeenCalledTimes(1); }); }); }); //# sourceMappingURL=SelectLinks.test.js.map