UNPKG

cpui-components

Version:

102 lines (77 loc) 4.42 kB
'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _enzyme = require('enzyme'); var _jestMatchers = require('jest-matchers'); var _jestMatchers2 = _interopRequireDefault(_jestMatchers); var _AutoComplete = require('./AutoComplete'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var testSuggestions = ['1', '2', '3']; describe('AutoComplete Tests', function () { var defaultProps = { onSuggestionSelected: jest.fn(), getSuggestions: jest.fn(), getSuggestionValue: jest.fn(), renderSuggestion: jest.fn(), suggestions: testSuggestions }; it('Expects AutoComplete to render with no suggestions', function () { var props = Object.assign({}, defaultProps, { suggestions: [] }); var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, props)); (0, _jestMatchers2.default)(wrapper.state('suggestions')).toEqual([]); }); it('Expects AutoComplete to render suggestions when receiving new props', function () { var props = Object.assign({}, defaultProps, { suggestions: [] }); var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, props)); (0, _jestMatchers2.default)(wrapper.state('suggestions')).toEqual([]); wrapper.instance().componentWillReceiveProps(defaultProps); (0, _jestMatchers2.default)(wrapper.state('suggestions')).toEqual(testSuggestions); }); it('Expects AutoComplete to update state value on change', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, defaultProps)); (0, _jestMatchers2.default)(wrapper.state('inputValue')).toBe(''); wrapper.instance().onChange(null, { newValue: 'test' }); (0, _jestMatchers2.default)(wrapper.state('inputValue')).toBe('test'); }); it('Expects AutoComplete to call onSuggestionSelected', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, defaultProps)); wrapper.setState({ inputValue: 'test' }); wrapper.instance().onSuggestionSelectedWrapped(null, { suggestion: testSuggestions[0] }); (0, _jestMatchers2.default)(defaultProps.onSuggestionSelected.mock.calls.length).toBe(1); (0, _jestMatchers2.default)(wrapper.state('inputValue')).toBe(''); }); it('Expects AutoComplete to update state value on change', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, defaultProps)); wrapper.instance().onSuggestionsFetchRequested({ value: 'test', reason: 'change' }); (0, _jestMatchers2.default)(defaultProps.getSuggestions.mock.calls.length).toBe(1); (0, _jestMatchers2.default)(wrapper.state('inputValue')).toBe('test'); }); it('Expects AutoComplete to clear input value when search is cleared', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_AutoComplete.AutoComplete, defaultProps)); wrapper.setState({ inputValue: 'test' }); wrapper.instance().clearSearch(); (0, _jestMatchers2.default)(wrapper.state('inputValue')).toBe(''); }); it("Expects input props to contain disabled if user sets disabled property", function () { var props = _extends({}, defaultProps, { disabled: true }); var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_AutoComplete.AutoComplete, props)); var inputProps = wrapper.instance().getInputProps(); expect(inputProps.disabled).toEqual(true); }); it("Should not have disabled in input props by default", function () { var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_AutoComplete.AutoComplete, defaultProps)); var inputProps = wrapper.instance().getInputProps(); expect(inputProps.disabled).toBe(undefined); }); it("Should not have disabled in input props if user passes `false` for `disabled`", function () { var props = _extends({}, defaultProps, { disabled: false }); var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_AutoComplete.AutoComplete, props)); var inputProps = wrapper.instance().getInputProps(); expect(inputProps.disabled).toBe(undefined); }); });