UNPKG

wix-style-react

Version:
124 lines (97 loc) 4.57 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 _sinon = require('sinon'); var _sinon2 = _interopRequireDefault(_sinon); var _testUtils = require('react-dom/test-utils'); var _testUtils2 = _interopRequireDefault(_testUtils); var _EditableRow = require('./EditableRow.driver'); var _EditableRow2 = _interopRequireDefault(_EditableRow); var _driverFactory = require('wix-ui-test-utils/driver-factory'); var _testkit = require('../../../testkit'); var _EditableRow3 = require('./EditableRow'); var _EditableRow4 = _interopRequireDefault(_EditableRow3); var _enzyme = require('../../../testkit/enzyme'); var _enzyme2 = require('enzyme'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('EditableRow', function () { var createDriver = (0, _driverFactory.createDriverFactory)(_EditableRow2.default); var props = void 0; beforeEach(function () { props = {}; }); it('should focus on input when mounted', function () { var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); expect(driver.isInputFocused()).toEqual(true); }); it('should toggle accept button disabled state according to input presence', function () { var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); expect(driver.isApproveDisabled()).toBe(true); driver.setText('new option'); expect(driver.isApproveDisabled()).toBe(false); }); it('should set input text from props', function () { var text = 'new option'; props.newOption = text; var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); expect(driver.getText()).toEqual(text); }); it('should trigger onApprove callback when approve button is clicked', function () { props.onApprove = _sinon2.default.spy(); var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); var text = 'new option'; driver.setText(text); driver.clickApprove(); expect(props.onApprove.calledOnce).toBe(true); expect(props.onApprove.calledWith(text)).toBe(true); }); it('should trigger onApprove callback when enter key is pressed', function () { props.onApprove = _sinon2.default.spy(); var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); var text = 'new option'; driver.setText(text); driver.keyDown(13); //enter expect(props.onApprove.calledOnce).toBe(true); expect(props.onApprove.calledWith(text)).toBe(true); }); it('should trigger onCancel callback when cancel button is clicked', function () { props.onCancel = _sinon2.default.spy(); var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); driver.clickCancel(); expect(props.onCancel.calledOnce).toBe(true); }); it('should trigger onCancel callback when escape key is pressed', function () { props.onCancel = _sinon2.default.spy(); var driver = createDriver(_react2.default.createElement(_EditableRow4.default, props)); driver.keyDown(27); //esc expect(props.onCancel.calledOnce).toBe(true); }); describe('testkit', function () { it('should exist', function () { var div = document.createElement('div'); var dataHook = 'myDataHook'; var wrapper = div.appendChild(_testUtils2.default.renderIntoDocument(_react2.default.createElement( 'div', null, _react2.default.createElement(_EditableRow4.default, _extends({}, props, { dataHook: dataHook })) ))); var editableRowTestkit = (0, _testkit.editableRowTestkitFactory)({ wrapper: wrapper, dataHook: dataHook }); expect(editableRowTestkit.exists()).toBeTruthy(); }); }); describe('enzyme testkit', function () { it('should exist', function () { var dataHook = 'myDataHook'; var wrapper = (0, _enzyme2.mount)(_react2.default.createElement(_EditableRow4.default, _extends({}, props, { dataHook: dataHook }))); var editableRowTestkit = (0, _enzyme.editableRowTestkitFactory)({ wrapper: wrapper, dataHook: dataHook }); expect(editableRowTestkit.exists()).toBeTruthy(); }); }); });