UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

46 lines (44 loc) 2.12 kB
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'); }); });