wix-style-react
Version:
wix-style-react
126 lines (95 loc) • 5.69 kB
JavaScript
;
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);
});
});
});
});