@ryami333/react-accessible-accordion
Version:
Accessible Accordion component for React
205 lines (183 loc) • 6.75 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactTestRenderer = require('react-test-renderer');
var _reactTestRenderer2 = _interopRequireDefault(_reactTestRenderer);
var _accordion = require('./accordion');
var _accordion2 = _interopRequireDefault(_accordion);
var _accordionItem = require('../AccordionItem/accordion-item');
var _accordionItem2 = _interopRequireDefault(_accordionItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
jest.mock('../AccordionItem/accordion-item', function () {
return 'div';
});
describe('Accordion', function () {
it('renders correctly with min params', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
null,
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
it('renders correctly with accordion false', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
{ accordion: false },
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
it('different className', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
{ accordion: false, className: 'testCSSClass' },
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
it('handleClick function accordion true', function () {
var wrapper = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
null,
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
)
));
wrapper.getInstance().handleClick(1);
expect(wrapper.getInstance().state.activeItems).toEqual([1]);
expect(wrapper).toMatchSnapshot();
wrapper.getInstance().handleClick(1);
expect(wrapper.getInstance().state.activeItems).toEqual([]);
expect(wrapper).toMatchSnapshot();
});
it('handleClick function accordion false', function () {
var wrapper = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
{ accordion: false },
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
)
));
wrapper.getInstance().handleClick(1);
expect(wrapper.getInstance().state.activeItems).toEqual([1]);
expect(wrapper).toMatchSnapshot();
wrapper.getInstance().handleClick(1);
expect(wrapper.getInstance().state.activeItems).toEqual([]);
expect(wrapper).toMatchSnapshot();
wrapper.getInstance().handleClick(0);
wrapper.getInstance().handleClick(1);
expect(wrapper.getInstance().state.activeItems).toEqual([0, 1]);
expect(wrapper).toMatchSnapshot();
});
it('handles disabled children', function () {
var wrapper = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
{ accordion: false },
_react2.default.createElement(
_accordionItem2.default,
{ disabled: true },
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
)
));
wrapper.getInstance().handleClick(0);
expect(wrapper).toMatchSnapshot();
});
it('pre expanded accordion', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
null,
_react2.default.createElement(
_accordionItem2.default,
{ expanded: true },
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
null,
'Fake Child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
it('works with multiple pre expanded accordion. Extra expands are just ignored.', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
null,
_react2.default.createElement(
_accordionItem2.default,
{ expanded: true },
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
{ expanded: true },
'Fake Child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
it('pre expanded accordion when accordion is false', function () {
var tree = _reactTestRenderer2.default.create(_react2.default.createElement(
_accordion2.default,
{ accordion: false },
_react2.default.createElement(
_accordionItem2.default,
{ expanded: true },
'Fake Child'
),
_react2.default.createElement(
_accordionItem2.default,
{ expanded: true },
'Fake Child'
)
)).toJSON();
expect(tree).toMatchSnapshot();
});
});