UNPKG

wix-style-react

Version:
126 lines (95 loc) • 5.69 kB
'use strict'; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _Selector = require('./Selector.driver'); var _Selector2 = _interopRequireDefault(_Selector); var _driverFactory = require('wix-ui-test-utils/driver-factory'); var _Selector3 = require('./Selector'); var _Selector4 = _interopRequireDefault(_Selector3); var _utils = require('../../test/utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('Selector', function () { var createDriver = (0, _driverFactory.createDriverFactory)(_Selector2.default); var defaultProps = { id: 1, title: 'title' }; it('should be unchecked by default', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.isChecked()).toBeFalsy(); }); it('should not render the subtitle by default', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.subtitleTextDriver().exists()).toBe(false); }); it('should not render the extra node', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.hasExtraNode()).toBe(false); }); it('should render the title', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.titleTextDriver().getText()).toBe(defaultProps.title); }); it('should render the subtitle', function () { var props = _extends({}, defaultProps, { subtitle: 'sub title' }); var driver = createDriver(_react2.default.createElement(_Selector4.default, props)); expect(driver.subtitleTextDriver().getText()).toBe('sub title'); }); it('should render the extra node', function () { var props = _extends({}, defaultProps, { extraNode: 'extra text' }); var driver = createDriver(_react2.default.createElement(_Selector4.default, props)); expect(driver.hasExtraNode()).toBe(true); expect(driver.getExtraNode().textContent).toBe('extra text'); }); it('should not render the image by default', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.hasImage()).toBe(false); }); it('should render the image', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, _extends({}, defaultProps, { image: _react2.default.createElement('img', { src: 'img.png' }) }))); expect(driver.hasImage()).toBe(true); expect(driver.getImage()).toBeInstanceOf(HTMLImageElement); expect(driver.getImage().src).toBe(_utils.ASSET_PREFIX + 'img.png'); }); it('should render a radio toggle by default', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, defaultProps)); expect(driver.toggleType()).toBe('radio'); }); it('should render a checkbox toggle', function () { var toggleType = 'checkbox'; var props = _extends({}, defaultProps, { toggleType: toggleType }); var driver = createDriver(_react2.default.createElement(_Selector4.default, props)); expect(driver.toggleType()).toBe(toggleType); }); it('should render a radio toggle', function () { var toggleType = 'radio'; var props = _extends({}, defaultProps, { toggleType: toggleType }); var driver = createDriver(_react2.default.createElement(_Selector4.default, props)); expect(driver.toggleType()).toBe(toggleType); }); it('should not propagate when selecting a disabled selector', function () { var onToggle = jest.fn(); var toggleType = 'radio'; var props = _extends({}, defaultProps, { toggleType: toggleType }); var driver = createDriver(_react2.default.createElement(_Selector4.default, _extends({ onToggle: onToggle }, props, { isDisabled: true }))); driver.toggle(); expect(onToggle).not.toHaveBeenCalled(); }); describe('given image size', function () { var sizesAndTestkitMethods = [['tiny', 'isImageTiny'], ['small', 'isImageSmall'], ['portrait', 'isImagePortrait'], ['large', 'isImageLarge'], ['cinema', 'isImageCinema']]; sizesAndTestkitMethods.forEach(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), size = _ref2[0], method = _ref2[1]; it('should set correct className for "' + size + '"', function () { var driver = createDriver(_react2.default.createElement(_Selector4.default, _extends({}, defaultProps, { imageSize: size, image: _react2.default.createElement('img', { src: 'img.png' }) }))); expect(driver[method](size)).toBe(true); }); }); }); });