zarm
Version:
基于 React 的移动端UI库
79 lines (76 loc) • 3.13 kB
JavaScript
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');
});
});
;