cpui-components
Version:
102 lines (77 loc) • 4.42 kB
JavaScript
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);
});
});
;