qt-public-ui
Version:
新设计规范下业务组件库
258 lines (257 loc) • 11.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _ = _interopRequireDefault(require(".."));
var _2 = require("../..");
var _testUtils = require("react-dom/test-utils");
var _fileSaver = _interopRequireDefault(require("file-saver"));
var _reactRouterDom = require("react-router-dom");
describe('Export', function () {
var response = {
headers: {
'content-type': 'application/json'
},
data: {
code: 200,
data: 1 // not string
}
};
var params = {
relatedId: '1afhi23qufaaegrbjiortjbitqu3'
};
var mockExportFn = jest.fn().mockReturnValue(Promise.resolve(response));
it('can handle failure of export and pop "导出失败"', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
var mockExportFnErr, wrapper;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
// returned without headers, should throw an err
mockExportFnErr = jest.fn().mockReturnValue(Promise.resolve({}));
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
exportFn: mockExportFnErr
}));
_context2.next = 4;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context.stop();
}
}, _callee);
})));
case 4:
wrapper.update();
expect(wrapper.find('.ant-popover-inner-content').text()).toBe('导出失败');
case 6:
case "end":
return _context2.stop();
}
}, _callee2);
})));
it('can return Url and download file', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
var spySaveAs, fileUrl, fileRes, mockExportFnFile, wrapper;
return _regenerator["default"].wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
global.URL.createObjectURL = jest.fn();
spySaveAs = jest.spyOn(_fileSaver["default"], 'saveAs');
fileUrl = 'https://img.alicdn.com/tfs/TB1y0UNpYj1gK0jSZFOXXc7GpXa-190-202.png';
fileRes = {
headers: {
'content-type': 'application/json'
},
data: {
code: 200,
data: fileUrl
}
};
mockExportFnFile = jest.fn().mockReturnValue(Promise.resolve(fileRes));
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
exportFn: mockExportFnFile
}));
_context4.next = 8;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context3.stop();
}
}, _callee3);
})));
case 8:
wrapper.update();
expect(spySaveAs).toHaveBeenCalledWith(fileUrl);
case 10:
case "end":
return _context4.stop();
}
}, _callee4);
})));
it('should pop "导出成功" when export success', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
var wrapper;
return _regenerator["default"].wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
exportFn: mockExportFn
}));
_context6.next = 3;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
return _regenerator["default"].wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context5.stop();
}
}, _callee5);
})));
case 3:
wrapper.update();
expect(wrapper.find('.ant-popover-inner-content').text()).toBe('导出成功');
case 5:
case "end":
return _context6.stop();
}
}, _callee6);
})));
it('should export expected params', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
var mockOnExport, mockExportFnWithPram, wrapper;
return _regenerator["default"].wrap(function _callee8$(_context8) {
while (1) switch (_context8.prev = _context8.next) {
case 0:
mockOnExport = jest.fn();
mockExportFnWithPram = jest.fn().mockImplementation(function (params) {
expect(params).toEqual(params);
return Promise.resolve(response);
});
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
exportFn: mockExportFnWithPram,
onExport: mockOnExport
}));
_context8.next = 5;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
return _regenerator["default"].wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context7.stop();
}
}, _callee7);
})));
case 5:
wrapper.update();
case 6:
case "end":
return _context8.stop();
}
}, _callee8);
})));
it('should listen on export', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
var mockOnExport, wrapper;
return _regenerator["default"].wrap(function _callee10$(_context10) {
while (1) switch (_context10.prev = _context10.next) {
case 0:
mockOnExport = jest.fn();
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
onExport: mockOnExport,
exportFn: mockExportFn
}));
_context10.next = 4;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
return _regenerator["default"].wrap(function _callee9$(_context9) {
while (1) switch (_context9.prev = _context9.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context9.stop();
}
}, _callee9);
})));
case 4:
wrapper.update();
expect(mockOnExport).toHaveBeenCalled();
case 6:
case "end":
return _context10.stop();
}
}, _callee10);
})));
it('can handle exsited report', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
var umProviderProps, wrapperExisted, popOverExt, wrapper, popOver;
return _regenerator["default"].wrap(function _callee13$(_context13) {
while (1) switch (_context13.prev = _context13.next) {
case 0:
umProviderProps = {
theme: 'analytical',
i18n: undefined,
exportConfig: {
exportFn: mockExportFn,
reportCenterURL: 'testReportCenter'
}
};
wrapperExisted = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2.UmProvider, umProviderProps, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
existedCode: 200
}), ",")));
_context13.next = 4;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
return _regenerator["default"].wrap(function _callee11$(_context11) {
while (1) switch (_context11.prev = _context11.next) {
case 0:
wrapperExisted.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context11.stop();
}
}, _callee11);
})));
case 4:
wrapperExisted.update();
popOverExt = wrapperExisted.find('.ant-popover');
expect(popOverExt.render()).toMatchSnapshot();
wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_2.UmProvider, umProviderProps, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react["default"].createElement(_["default"], {
params: params,
existedCode: 1
}), ",")));
_context13.next = 10;
return (0, _testUtils.act)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
return _regenerator["default"].wrap(function _callee12$(_context12) {
while (1) switch (_context12.prev = _context12.next) {
case 0:
wrapper.find('.umui-export').simulate('click'); // click to trigger function
case 1:
case "end":
return _context12.stop();
}
}, _callee12);
})));
case 10:
wrapper.update();
popOver = wrapper.find('.ant-popover');
expect(popOver.render()).toMatchSnapshot();
case 13:
case "end":
return _context13.stop();
}
}, _callee13);
})));
});