UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

162 lines (160 loc) 4.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _react = _interopRequireDefault(require("react")); var _enzyme = require("enzyme"); var _index = require("../../index"); var _testUtils = require("react-dom/test-utils"); describe('Select', function () { function toggleOpen(wrapper) { (0, _testUtils.act)(function () { wrapper.find('.ant-select-selector').simulate('mousedown'); jest.runAllTimers(); }); wrapper.update(); } beforeEach(function () { jest.useFakeTimers(); }); afterEach(function () { jest.useRealTimers(); }); it('select with icon renders correctly', function () { var options_icons = [{ key: 1, name: 'options1234567890', icon: 'umicon-production' }, { key: 2, name: 'options2', icon: 'umicon-production' }]; var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.Select, { style: { width: 200 }, onSelect: console.log, options: options_icons })); toggleOpen(wrapper); expect(wrapper.find('.ant-select-item')).toHaveLength(2); wrapper.find('.ant-select-item').forEach(function (node) { expect(node.find('svg').children().html()).toEqual("<use xlink:href=\"#umicon-production\"></use>"); }); // expect(wrapper.render()).toMatchSnapshot(); }); it('Select with extra parameters', function () { var fn = jest.fn(); var options_extra = [{ key: 1, name: 'options1', extra: 'extra1' }, { key: 2, name: 'options2', extra: 'extra2' }]; var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.Select, { style: { width: 200 }, onSelect: fn, options: options_extra })); toggleOpen(wrapper); wrapper.find('.ant-select-item').at(0).simulate('click'); expect(fn).toHaveBeenCalledWith(1, "extra1"); wrapper.find('.ant-select-item').at(1).simulate('click'); expect(fn).toHaveBeenCalledWith(2, "extra2"); }); it('Select options are loaded asynchronously', function () { var options = [{ key: 1, name: 'options1111111111111122222222' }, { key: 2, name: 'options2' }, { key: 3, name: 'options3' }]; var fetchOptions = function fetchOptions() { return new Promise(function (resolve) { return setTimeout(function () { resolve(options); }, 300); }); }; var fn = jest.fn().mockImplementation(fetchOptions); var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.Select.Async, { style: { width: 200 }, onSelect: console.log, fetch: fn })); expect(fn).toHaveBeenCalled(); }); it('Select options are loaded asynchronously(defer)', function () { var options = [{ key: 1, name: 'options1111111111111122222222' }, { key: 2, name: 'options2' }, { key: 3, name: 'options3' }]; var fetchOptions = function fetchOptions() { return new Promise(function (resolve) { return setTimeout(function () { resolve(options); }, 300); }); }; var fn = jest.fn().mockImplementation(fetchOptions); var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.Select.Async, { style: { width: 200 }, onSelect: console.log, fetch: fn, defer: true })); toggleOpen(wrapper); expect(fn).toHaveBeenCalled(); }); it('Select with all options', function () { var options = [{ key: 1, name: 'options1111111111111122222222' }, { key: 2, name: 'options2' }, { key: 3, name: 'options3' }]; var fetchOptions = function fetchOptions() { return new Promise(function (resolve) { return setTimeout(function () { resolve(options); }, 300); }); }; var fn = jest.fn().mockImplementation(fetchOptions); var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_index.Select.Async, { style: { width: 200 }, onSelect: console.log, fetch: fn, allOption: { key: 'all', name: '全部' } })); toggleOpen(wrapper); expect(wrapper.find('.ant-select-item').at(0)).toMatchSnapshot(); }); });