UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

258 lines (257 loc) 11.5 kB
"use strict"; 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); }))); });