wix-style-react
Version:
wix-style-react
124 lines (97 loc) • 4.57 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 _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();
});
});
});