UNPKG

zarm

Version:

基于 React 的移动端UI库

79 lines (76 loc) 3.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _changeImageSize = _interopRequireDefault(require("../../utils/changeImageSize")); describe('changeImageSize', function () { afterEach(function () { jest.restoreAllMocks(); }); it('should change image size', function () { var mCanvasRenderingContext2D = { fillRect: jest.fn(), drawImage: jest.fn(), fillStyle: '' }; var mCanvas = { getContext: jest.fn().mockReturnValueOnce(mCanvasRenderingContext2D), toDataURL: jest.fn().mockReturnValueOnce('data:,'), width: 0, height: 0 }; var createElementSpy = jest.spyOn(document, 'createElement').mockReturnValueOnce(mCanvas); var img = { width: 100, height: 200 }; var actual = (0, _changeImageSize.default)(img, 0, 'image/png'); expect(actual).toEqual('data:,'); expect(createElementSpy).toBeCalledWith('canvas'); expect(mCanvas.getContext).toBeCalledWith('2d'); expect(mCanvasRenderingContext2D.fillRect).toBeCalledWith(0, 0, 100, 200); expect(mCanvasRenderingContext2D.drawImage).toBeCalledWith(img, 0, 0, 100, 200); expect(mCanvas.toDataURL).toBeCalledWith('image/png', 0); }); it('should print error and return empty string if canvans context is null', function () { var mCanvas = { getContext: jest.fn() }; var createElementSpy = jest.spyOn(document, 'createElement').mockReturnValueOnce(mCanvas); var errorLogSpy = jest.spyOn(console, 'error').mockImplementationOnce(function () { return 'suppress error'; }); var img = {}; var actual = (0, _changeImageSize.default)(img, 0, 'image/png'); expect(actual).toEqual(''); expect(createElementSpy).toBeCalledWith('canvas'); expect(errorLogSpy).toBeCalledWith('请使用高版本浏览器,该版本浏览器不支持生成缩略图'); }); it('should print error if the quality is invalid', function () { var mCanvasRenderingContext2D = { fillRect: jest.fn(), drawImage: jest.fn(), fillStyle: '' }; var mCanvas = { getContext: jest.fn().mockReturnValueOnce(mCanvasRenderingContext2D), toDataURL: jest.fn().mockReturnValueOnce('data:,'), width: 0, height: 0 }; var createElementSpy = jest.spyOn(document, 'createElement').mockReturnValueOnce(mCanvas); var errorLogSpy = jest.spyOn(console, 'error').mockImplementationOnce(function () { return 'suppress error'; }); var img = { width: 100, height: 200 }; var actual = (0, _changeImageSize.default)(img, 2, 'image/png'); expect(actual).toEqual('data:,'); expect(createElementSpy).toBeCalledWith('canvas'); expect(mCanvas.getContext).toBeCalledWith('2d'); expect(mCanvasRenderingContext2D.fillRect).toBeCalledWith(0, 0, 100, 200); expect(mCanvasRenderingContext2D.drawImage).toBeCalledWith(img, 0, 0, 100, 200); expect(mCanvas.toDataURL).toBeCalledWith('image/png', 2); expect(errorLogSpy).toBeCalledWith('请输入有效的压缩比例, 没有将默认使用 0.92'); }); });