1
import compressImage from './compressImage';
3
const getContextSpy = vi.spyOn(global.HTMLCanvasElement.prototype, 'getContext');
4
const drawImageSpy = vi.spyOn(CanvasRenderingContext2D.prototype, 'drawImage');
7
getContextSpy.mockClear();
8
drawImageSpy.mockClear();
11
describe('compressImage', () => {
12
it('should compress image with maxWidth', () => {
13
const img = document.createElement('img');
17
const r = compressImage({ img });
19
expect(r).toMatch(/^data:image\/webp;base64,/);
21
expect(getContextSpy).toBeCalledTimes(1);
22
expect(getContextSpy).toBeCalledWith('2d');
24
expect(drawImageSpy).toBeCalledTimes(1);
25
expect(drawImageSpy).toBeCalledWith(img, 0, 0, 3000, 2000, 0, 0, 2160, 1440);
28
it('should compress image with maxHeight', () => {
29
const img = document.createElement('img');
33
const r = compressImage({ img });
35
expect(r).toMatch(/^data:image\/webp;base64,/);
37
expect(getContextSpy).toBeCalledTimes(1);
38
expect(getContextSpy).toBeCalledWith('2d');
40
expect(drawImageSpy).toBeCalledTimes(1);
41
expect(drawImageSpy).toBeCalledWith(img, 0, 0, 2000, 3000, 0, 0, 1440, 2160);
44
it('should not compress image', () => {
45
const img = document.createElement('img');
49
const r = compressImage({ img });
51
expect(r).toMatch(/^data:image\/webp;base64,/);
53
expect(getContextSpy).toBeCalledTimes(1);
54
expect(getContextSpy).toBeCalledWith('2d');
56
expect(drawImageSpy).toBeCalledTimes(1);
57
expect(drawImageSpy).toBeCalledWith(img, 0, 0, 2000, 2000, 0, 0, 2000, 2000);