zarm
Version:
基于 React 的移动端UI库
89 lines (85 loc) • 3.41 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import { fireEvent, render } from '@testing-library/react';
import React from 'react';
import DatePicker from '../index';
import Button from '../../button';
describe('DatePicker', function () {
it('snapshot', function () {
var wrapper = render( /*#__PURE__*/React.createElement(DatePicker, null));
expect(wrapper.asFragment()).toMatchSnapshot();
});
it('should trigger onConfirm when press ok button', function () {
var onConfirmFn = jest.fn();
render( /*#__PURE__*/React.createElement(DatePicker, {
value: new Date('2009/3/4'),
visible: true,
onConfirm: onConfirmFn
}));
fireEvent.click(document.body.querySelectorAll('.za-picker__confirm')[0]);
expect(onConfirmFn).toBeCalled();
});
it('should trigger onCancel when press cancel button', function () {
var onCancelFn = jest.fn();
render( /*#__PURE__*/React.createElement(DatePicker, {
value: new Date('2009/3/4'),
visible: true,
onCancel: onCancelFn
}));
fireEvent.click(document.body.querySelectorAll('.za-picker__cancel')[0]);
expect(onCancelFn).toBeCalled();
});
it('static method prompt', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
var confirm, cancel, _render, getByText, btn;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
confirm = jest.fn();
cancel = jest.fn();
_render = render( /*#__PURE__*/React.createElement(Button, {
size: "xs",
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return DatePicker.prompt({
defaultValue: new Date('2023/2/23'),
onConfirm: confirm,
onCancel: cancel,
confirmText: 'date picker confirm',
cancelText: 'date picker cancel'
});
case 2:
case "end":
return _context.stop();
}
}
}, _callee);
}))
}, "date picker")), getByText = _render.getByText;
btn = getByText('date picker');
fireEvent.click(btn);
fireEvent.click(getByText('date picker confirm'));
expect(confirm).toHaveBeenCalledWith(new Date('2023/2/23'), [{
"label": "2023年",
"value": 2023
}, {
"label": "2月",
"value": 2
}, {
"label": "23日",
"value": 23
}]); // fireEvent.click(btn);
fireEvent.click(getByText('date picker cancel'));
expect(cancel).toBeCalled();
case 9:
case "end":
return _context2.stop();
}
}
}, _callee2);
})));
});