lucid-ui
Version:
A UI component library from AppNexus.
46 lines (44 loc) • 2.12 kB
JavaScript
import _has from "lodash/has";
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
import { common } from '../../util/generic-tests';
import { shallow, mount } from 'enzyme';
import { ButtonGroupDumb as ButtonGroup } from './ButtonGroup';
describe('ButtonGroup', function () {
common(ButtonGroup);
it('prop children', function () {
var wrapper = shallow( /*#__PURE__*/React.createElement(ButtonGroup, null, /*#__PURE__*/React.createElement(ButtonGroup.Button, null), /*#__PURE__*/React.createElement("div", {
className: "jim"
})));
assert(wrapper.contains( /*#__PURE__*/React.createElement("div", {
className: "jim"
})));
});
it('prop selectedIndices', function () {
var wrapper = shallow( /*#__PURE__*/React.createElement(ButtonGroup, {
selectedIndices: [1]
}, /*#__PURE__*/React.createElement(ButtonGroup.Button, null), /*#__PURE__*/React.createElement(ButtonGroup.Button, null)));
assert.equal(wrapper.children().at(1).prop('isActive'), true);
});
});
describe('ButtonGroup', function () {
it('prop onSelect', function () {
var onSelect = sinon.spy();
var wrapper = mount( /*#__PURE__*/React.createElement(ButtonGroup, {
onSelect: onSelect
}, /*#__PURE__*/React.createElement(ButtonGroup.Button, null), /*#__PURE__*/React.createElement(ButtonGroup.Button, null)));
wrapper.children().children().at(1).simulate('click'); // second button
assert.equal(onSelect.args[0][0], 1);
});
it('prop onSelect on children', function () {
var onClick = sinon.spy();
var wrapper = mount( /*#__PURE__*/React.createElement(ButtonGroup, null, /*#__PURE__*/React.createElement(ButtonGroup.Button, null), /*#__PURE__*/React.createElement(ButtonGroup.Button, {
onClick: onClick
})));
wrapper.children().children().at(1).simulate('click'); // second button
assert(onClick.called, 'onClick was not called');
assert(_has(onClick.args[0][0], 'event'), '`event` missing from `onClick` callback');
assert(_has(onClick.args[0][0], 'props'), '`props` missing from `onClick` callback');
});
});