react-accessible-tabs
Version:
Accessible React tabs component
60 lines (37 loc) • 2.3 kB
JavaScript
;
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 _TabList = require('./TabList');
var _TabList2 = _interopRequireDefault(_TabList);
var _Tab = require('./Tab');
var _Tab2 = _interopRequireDefault(_Tab);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _mocha.describe)('<TabList />', function () {
(0, _mocha.it)('renders nothing with no data', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_TabList2.default, { data: [] }));
(0, _expect2.default)(wrapper.type()).toBe(null);
});
(0, _mocha.it)('renders ul.tabs__tab-list[role="tablist"]', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_TabList2.default, { data: _testData2.default }));
(0, _expect2.default)(wrapper.is('ul.tabs__tab-list[role="tablist"]')).toBe(true);
});
(0, _mocha.it)('contains <Tab /> component', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_TabList2.default, { data: _testData2.default }));
(0, _expect2.default)(wrapper.containsMatchingElement(_react2.default.createElement(_Tab2.default, null))).toBe(true);
});
(0, _mocha.it)('contains 3 <Tab />s', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_TabList2.default, { data: _testData2.default }));
(0, _expect2.default)(wrapper.html().match(/<li class="tabs__tab-list-item".*?><\/li>/g).length).toBe(3);
});
(0, _mocha.it)('.tabs__tab-list-item 1\'s [aria-controls] & [href] is i0-Tab1', function () {
var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_TabList2.default, { data: _testData2.default }));
var tabListItem = wrapper.html().match(/<li class="tabs__tab-list-item".*?><\/li>/)[0];
(0, _expect2.default)(tabListItem.indexOf('aria-controls="i0-Tab1"') > -1 && tabListItem.indexOf('href="#i0-Tab1"') > -1).toBe(true);
});
});