UNPKG

zarm

Version:

基于 React 的移动端UI库

135 lines (121 loc) 4.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _react = require("@testing-library/react"); var _react2 = _interopRequireDefault(require("react")); var _index = _interopRequireDefault(require("../index")); // TODO: make mock package for better-scroll package var bsScrollInstance = { on: jest.fn().mockImplementationOnce(function (event, handler) { if (event === 'scrollEnd') { handler(); } }), destroy: jest.fn(), getSelectedIndex: jest.fn(), refresh: jest.fn(), wheelTo: jest.fn(), disable: jest.fn(), stop: jest.fn() }; jest.mock('better-scroll', function () { return jest.fn(function () { return bsScrollInstance; }); }); describe('PickerView', function () { afterAll(function () { jest.resetAllMocks(); }); afterEach(function () { jest.restoreAllMocks(); }); it('should not render wheels if datasource is empty', function () { var _container$querySelec; var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_index.default, null)), container = _render.container; expect((_container$querySelec = container.querySelector('.za-picker-view__content')) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec.children).toHaveLength(0); }); it('should render wheels if datasource is not empty', function () { var _container$querySelec2; var dataSource = [{ label: 'a', value: 1 }, { label: 'b', value: 2 }]; var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_index.default, { dataSource: dataSource })), container = _render2.container; expect((_container$querySelec2 = container.querySelector('.za-picker-view__content')) === null || _container$querySelec2 === void 0 ? void 0 : _container$querySelec2.children).toHaveLength(1); }); it('should render with correct className', function () { var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_index.default, { className: "foo" })), container = _render3.container; expect(container.querySelectorAll('.za-picker-view__content')).toHaveLength(1); expect(container.querySelectorAll('.za-picker-view__mask')).toHaveLength(2); expect(container.querySelectorAll('.za-picker-view__mask--top')).toHaveLength(1); expect(container.querySelectorAll('.za-picker-view__mask--bottom')).toHaveLength(1); }); it('PickerView render visible', function () { var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_index.default, { dataSource: [{ value: '1', label: '选项一' }, { value: '2', label: '选项二' }], defaultValue: "1", value: "1" })), container = _render4.container; expect(container).toMatchSnapshot(); }); it('PickerView disabled', function () { var onChange = jest.fn(); var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_index.default, { disabled: true, onChange: onChange, dataSource: [{ value: '1', label: '选项一' }, { value: '2', label: '选项二' }] })), container = _render5.container; expect(onChange).not.toBeCalled(); expect(container).toMatchSnapshot(); }); // test('picker scroll onChange should call', async () => { // const onChange = jest.fn(); // const App = () => { // return ( // <> // <PickerView // dataSource={[ // { value: '1', label: '选项一' }, // { value: '2', label: '选项二' }, // ]} // onChange={onChange} // /> // </> // ) // } // render(<App />) // const wheelEl = document.body.querySelectorAll('.za-wheel')[0]; // fireEvent.touchStart(wheelEl, { // buttons: 1, // }); // fireEvent.touchMove(wheelEl, { // clientY: -100, // buttons: 1, // }); // fireEvent.touchEnd(wheelEl); // expect(onChange).toBeCalled(); // }) });