UNPKG

zarm

Version:

基于 React 的移动端UI库

110 lines (98 loc) 3.9 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 _utils = require("ts-jest/utils"); var _createThumbnail = _interopRequireDefault(require("../../utils/createThumbnail")); var _changeImageSize = _interopRequireDefault(require("../../utils/changeImageSize")); var _utils2 = require("../../../../tests/utils"); jest.mock('../../utils/changeImageSize'); var mChangeImageSize = (0, _utils.mocked)(_changeImageSize.default); describe('createThumbnail', function () { var imageOnload; var mCreateObjectURL = jest.fn(); afterAll(function () { jest.resetAllMocks(); (0, _utils2.mockResetCreateObjectURL)(); }); beforeAll(function () { Object.defineProperty(Image.prototype, 'onload', { get: function get() { return this._onload; }, set: function set(fn) { imageOnload = fn; this._onload = fn; } }); (0, _utils2.mockCreateObjectURL)(mCreateObjectURL); }); afterEach(function () { jest.restoreAllMocks(); jest.clearAllMocks(); }); it('should create thumbnail for image', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var createElementSpy, mFile, createThumbnailPromise, actual; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: mChangeImageSize.mockReturnValueOnce('data:,'); createElementSpy = jest.spyOn(document, 'createElement'); mFile = new File(['foo'], 'foo.png', { type: 'image/png' }); createThumbnailPromise = (0, _createThumbnail.default)({ file: mFile, quality: 0, fileType: 'image/png', maxWidth: 100 }); imageOnload(); _context.next = 7; return createThumbnailPromise; case 7: actual = _context.sent; expect(actual).toEqual('data:,'); expect(createElementSpy).toBeCalledWith('img'); expect(mChangeImageSize).toBeCalledWith(expect.any(Image), 0, 'image/png'); expect(window.URL.createObjectURL).toBeCalledWith(mFile); case 12: case "end": return _context.stop(); } } }, _callee); }))); it('should return image url get from src if quality, maxWidth, maxHeight are falsy value', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var createElementSpy, mFile, createThumbnailPromise, actual; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: mCreateObjectURL.mockReturnValueOnce('./test.png'); createElementSpy = jest.spyOn(document, 'createElement'); mFile = new File(['foo'], 'foo.png', { type: 'image/png' }); createThumbnailPromise = (0, _createThumbnail.default)({ file: mFile, quality: 0, fileType: 'image/png' }); imageOnload(); _context2.next = 7; return createThumbnailPromise; case 7: actual = _context2.sent; expect(createElementSpy).toBeCalledWith('img'); expect(mChangeImageSize).not.toBeCalled(); expect(actual).toEqual("".concat(window.location.href, "test.png")); case 11: case "end": return _context2.stop(); } } }, _callee2); }))); });