File size: 2,484 Bytes
b456468
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import { fabric } from 'fabric';
import Graphics from '@/graphics';
import Resize from '@/component/resize';

describe('Resize', () => {
  let graphics, resize, mockImage;

  beforeAll(() => {
    graphics = new Graphics(document.createElement('canvas'));
    resize = new Resize(graphics);
  });

  beforeEach(() => {
    mockImage = new fabric.Image(null, { width: 100, height: 100 });
    graphics.setCanvasImage('mockImage', mockImage);
  });

  it('should return current image dimensions', () => {
    let currentDimensions = resize.getCurrentDimensions();

    expect(currentDimensions).toEqual({ width: 100, height: 100 });

    const newDimensions = { width: 20, height: 20 };

    resize.resize(newDimensions);
    currentDimensions = resize.getCurrentDimensions();

    expect(newDimensions).toEqual(currentDimensions);
  });

  it('should return original image dimensions after resizing', () => {
    const originalDimensionsBeforeResizing = resize.getOriginalDimensions();
    const newDimensions = { width: 20, height: 20 };

    resize.resize(newDimensions);
    const originalDimensionsAfterResizing = resize.getOriginalDimensions();

    expect(originalDimensionsBeforeResizing).toEqual(originalDimensionsAfterResizing);
  });

  it('should set original dimensions', () => {
    const newDimensions = { width: 20, height: 20 };

    resize.setOriginalDimensions(newDimensions);
    const originalDimensions = resize.getOriginalDimensions();

    expect(newDimensions).toEqual(originalDimensions);
  });

  it('should resize image', () => {
    const originalDimensions = resize.getOriginalDimensions();
    const newDimensions = { width: 20, height: 20 };

    resize.resize(newDimensions);
    let currentDimensions = resize.getCurrentDimensions();

    expect(newDimensions).toEqual(currentDimensions);

    resize.resize(originalDimensions);
    currentDimensions = resize.getCurrentDimensions();

    expect(originalDimensions).toEqual(currentDimensions);
  });

  it('should set original dimensions when drawing mode is started', () => {
    resize.setOriginalDimensions(null);

    resize.start();

    expect(resize.getOriginalDimensions()).not.toBeNull();
  });

  it('should have end method', () => {
    expect(typeof resize.end === 'function').toBe(true);
  });

  it('should return promise', async () => {
    const newDimensions = { width: 20, height: 20 };

    const obj = await resize.resize(newDimensions);

    expect(obj).toBeUndefined();
  });
});