UNPKG

zarm

Version:

基于 React 的移动端UI库

184 lines (159 loc) 7.02 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _react = _interopRequireDefault(require("react")); var _react2 = require("@testing-library/react"); var _index = _interopRequireDefault(require("../index")); var classPrefix = 'za-radio'; describe('Radio', function () { it('renders correctly', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, { checked: true, onChange: jest.fn() }, "foo")); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('defaultChecked', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, { defaultChecked: true }, "foo")); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('disabled', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, { disabled: true }, "foo")); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('click event', function () { var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, null, "foo")), container = _render.container; var input = container.querySelectorAll('input')[0]; var radio = container.getElementsByTagName('label')[0]; expect(input).not.toBeChecked(); expect(radio).toHaveClass("".concat(classPrefix)); _react2.fireEvent.click(radio); expect(input).toBeChecked(); expect(radio).toHaveClass("".concat(classPrefix, "--checked")); _react2.fireEvent.click(radio); expect(input).toBeChecked(); expect(radio).toHaveClass("".concat(classPrefix, "--checked")); }); it('static method', function () { var _ref$current; var ref = /*#__PURE__*/_react.default.createRef(); var checked = false; var onChange = jest.fn(function (e) { checked = e.target.checked; }); var _render2 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default, { ref: ref, onChange: onChange }, "foo")), container = _render2.container; var input = container.querySelectorAll('input')[0]; (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.check(); expect(input).toBeChecked(); expect(onChange).toHaveBeenCalled(); expect(checked).toEqual(true); }); }); describe('Radio.Group', function () { it('renders correctly', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, null, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('render value correctly', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { value: "0" }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('render defaultValue correctly', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { defaultValue: "1" }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('type is button', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { type: "button" }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))); expect(wrapper.asFragment()).toMatchSnapshot(); var container = wrapper.container; var radio = container.getElementsByTagName('label')[0]; _react2.fireEvent.click(radio); expect(radio).toHaveClass("".concat(classPrefix, "--checked")); }); it('type is list', function () { var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { type: "list" }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))); expect(wrapper.asFragment()).toMatchSnapshot(); }); it('receive new value', function () { var _render3 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { defaultValue: "0" }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2" }, "\u9009\u9879\u4E09"))), container = _render3.container; var items = Array.from(container.querySelectorAll('input')); expect(items[0].checked).toEqual(true); }); it('onChange', function () { var onChange = jest.fn(); var _render4 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.default.Group, { type: "list", onChange: onChange }, /*#__PURE__*/_react.default.createElement(_index.default, { value: "0" }, "\u9009\u9879\u4E00"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "1" }, "\u9009\u9879\u4E8C"), /*#__PURE__*/_react.default.createElement(_index.default, { value: "2", disabled: true }, "\u9009\u9879\u4E09"))), container = _render4.container; var items = container.querySelectorAll('.za-radio'); _react2.fireEvent.click(items[0]); expect(onChange).toBeCalledWith('0'); _react2.fireEvent.click(items[0]); expect(onChange).toBeCalledWith('0'); // 测试disabled _react2.fireEvent.click(items[2]); expect(onChange).toBeCalledWith('0'); }); });