UNPKG

@roo-ui/components

Version:

164 lines (139 loc) 8.27 kB
'use strict'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _enzyme = require('enzyme'); var _jestAxe = require('jest-axe'); var _StarRating = require('./StarRating'); var _StarRating2 = _interopRequireDefault(_StarRating); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* eslint-env jest */ var ratingType = void 0; var rating = void 0; describe('<StarRating />', function () { it('renders the icons', function () { rating = '1'; ratingType = 'SELF_RATED'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: ratingType, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.length).toBe(5); }); it('renders correctly', function () { var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: ratingType, size: '16' })); expect(wrapper).toMatchSnapshot(); }); it('has no accessibility errors', _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var wrapper; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: ratingType, size: '16' })); _context.t0 = expect; _context.next = 4; return (0, _jestAxe.axe)(wrapper.html()); case 4: _context.t1 = _context.sent; (0, _context.t0)(_context.t1).toHaveNoViolations(); case 6: case 'end': return _context.stop(); } } }, _callee, undefined); }))); ['AAA', 'SELF_RATED'].forEach(function (type) { describe(type + ' Rated <StarRating />', function () { var ratingTypeIcon = type === 'AAA' ? 'star' : 'circle'; it('renders the 5 star rating', function () { rating = '5'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(3).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(4).prop('name')).toEqual('' + ratingTypeIcon); }); it('renders the 4.5 star rating', function () { rating = '4.5'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(3).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Half'); }); it('renders the 4 star rating', function () { rating = '4'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(3).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 3.5 star rating', function () { rating = '3.5'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Half'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 3 star rating', function () { rating = '3'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 2.5 star rating', function () { rating = '2.5'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual(ratingTypeIcon + 'Half'); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 2 star rating', function () { rating = '2'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(2).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 1.5 star rating', function () { rating = '1.5'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual(ratingTypeIcon + 'Half'); expect(stars.at(2).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); it('renders the 1 star rating', function () { rating = '1'; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_StarRating2.default, { rating: rating, ratingType: type, size: '16' })); var stars = wrapper.find('Icon'); expect(stars.at(0).prop('name')).toEqual('' + ratingTypeIcon); expect(stars.at(1).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(2).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(3).prop('name')).toEqual(ratingTypeIcon + 'Border'); expect(stars.at(4).prop('name')).toEqual(ratingTypeIcon + 'Border'); }); }); }); });