react-accessible-tabs
Version:
Accessible React tabs component
58 lines (37 loc) • 2.2 kB
JavaScript
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _mocha = require('mocha');
var _enzyme = require('enzyme');
var _expect = require('expect');
var _expect2 = _interopRequireDefault(_expect);
var _testData = require('../../tools/testData');
var _testData2 = _interopRequireDefault(_testData);
var _Tab = require('./Tab');
var _Tab2 = _interopRequireDefault(_Tab);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _mocha.describe)('<Tab />', function () {
(0, _mocha.it)('renders li.tabs__tab-list-item[role="presentation"]', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_Tab2.default, null));
(0, _expect2.default)(wrapper.is('li.tabs__tab-list-item[role="presentation"]')).toBe(true);
});
(0, _mocha.it)('contains 1 a.tabs__trigger[role="tab"]', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_Tab2.default, null));
(0, _expect2.default)(wrapper.find('a.tabs__trigger[role="tab"]').length).toBe(1);
});
(0, _mocha.it)('a has correct content', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_Tab2.default, { label: _testData2.default[0].label }));
var a = wrapper.find('a');
(0, _expect2.default)(a.text()).toBe('Tab 1');
});
(0, _mocha.it)('a has correct aria states when selected', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_Tab2.default, { index: 0, selectedIndex: 0 }));
var a = wrapper.find('a');
(0, _expect2.default)(a.prop('aria-selected') && a.prop('className').indexOf('is-selected') > -1 && a.prop('tabIndex') === 0).toBe(true);
});
(0, _mocha.it)('a has correct aria states when un-selected', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_Tab2.default, { index: 0, selectedIndex: 1 }));
var a = wrapper.find('a');
(0, _expect2.default)(!a.prop('aria-selected') && a.prop('className').indexOf('is-selected') === -1 && a.prop('tabIndex') === -1).toBe(true);
});
});