zarm
Version:
基于 React 的移动端UI库
118 lines (107 loc) • 4.19 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import { fireEvent, render, waitFor } from '@testing-library/react';
import React from 'react';
import Popper from '../index';
if (global.document) {
document.createRange = function () {
return {
setStart: function setStart() {},
setEnd: function setEnd() {},
// @ts-ignore
commonAncestorContainer: {
nodeName: 'BODY',
ownerDocument: document
}
};
};
}
window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () {
return {
disconnect: jest.fn(),
observe: jest.fn(),
unobserve: jest.fn()
};
});
describe('Popper', function () {
it('renders correctly', function () {
var onVisibleChange = jest.fn();
var _render = render( /*#__PURE__*/React.createElement(Popper, {
content: "\u6807\u9898",
onVisibleChange: onVisibleChange
}, /*#__PURE__*/React.createElement("p", null, "\u70B9\u6211"))),
container = _render.container;
expect(container).toMatchSnapshot();
});
it('renders menu-slide', function () {
var onVisibleChange = jest.fn();
var _render2 = render( /*#__PURE__*/React.createElement(Popper, {
content: "\u6807\u9898",
onVisibleChange: onVisibleChange,
animationType: "menu-slide"
}, /*#__PURE__*/React.createElement("p", null, "\u70B9\u6211"))),
container = _render2.container;
expect(container).toMatchSnapshot();
});
it('renders menu-slide bottom', function () {
var onVisibleChange = jest.fn();
var _render3 = render( /*#__PURE__*/React.createElement(Popper, {
content: "\u6807\u9898",
onVisibleChange: onVisibleChange,
animationType: "menu-slide",
direction: "bottom"
}, /*#__PURE__*/React.createElement("p", null, "\u70B9\u6211"))),
container = _render3.container;
expect(container).toMatchSnapshot();
});
it('check hasArrow prop', function () {
var _render4 = render( /*#__PURE__*/React.createElement("div", {
"data-testid": "za-popper-hasArrow"
}, /*#__PURE__*/React.createElement(Popper, {
trigger: "click",
hasArrow: false,
content: "fdsfsd",
mouseEnterDelay: 0,
mouseLeaveDelay: 0
}, /*#__PURE__*/React.createElement("div", {
className: "hello"
}, "Hello world!")), ",")),
getByTestId = _render4.getByTestId;
var wrapper = getByTestId('za-popper-hasArrow');
var elments = [].slice.call(wrapper.getElementsByClassName('hello'));
fireEvent.click(elments === null || elments === void 0 ? void 0 : elments[0]);
expect(wrapper.getElementsByClassName('.za-popper__arrow')).not.toHaveLength(1);
});
it('check onVisibleChange func prop', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var onVisibleChange, _render5, getByTestId, wrapper, elments;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
onVisibleChange = jest.fn();
_render5 = render( /*#__PURE__*/React.createElement("div", {
"data-testid": "za-popper-onVisibleChange"
}, /*#__PURE__*/React.createElement(Popper, {
trigger: "click",
content: "fsdfds",
mouseEnterDelay: 0,
mouseLeaveDelay: 0,
onVisibleChange: onVisibleChange
}, /*#__PURE__*/React.createElement("div", {
className: "hello"
}, "Hello world!")))), getByTestId = _render5.getByTestId;
wrapper = getByTestId('za-popper-onVisibleChange');
elments = [].slice.call(wrapper.getElementsByClassName('hello'));
fireEvent.click(elments === null || elments === void 0 ? void 0 : elments[0]);
_context.next = 7;
return waitFor(function () {
expect(onVisibleChange).toBeCalled();
});
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
})));
});