File size: 1,461 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
import { fabric } from 'fabric';
import ImageEditor from '@/imageEditor';
import '@/command/loadImage';

import img from 'fixtures/sampleImage.jpg';

describe('DrawingMode', () => {
  let imageEditor;

  beforeEach(async () => {
    imageEditor = new ImageEditor(document.createElement('div'), {
      cssMaxWidth: 700,
      cssMaxHeight: 500,
    });
    const image = new fabric.Image(img);

    await imageEditor.loadImageFromURL(image, 'sampleImage');
  });

  afterEach(() => {
    imageEditor.destroy();
  });

  it('should enter a drawing mode with startDrawingMode, CROPPER', () => {
    imageEditor.startDrawingMode('CROPPER');

    expect(imageEditor.getDrawingMode()).toBe('CROPPER');
  });

  it('should stop a drawing mode with stopDrawingMode, ie, to normal', () => {
    imageEditor.stopDrawingMode();

    expect(imageEditor.getDrawingMode()).toBe('NORMAL');
  });

  it('should enter all drawing mode with startDrawingMode in consecutive order', () => {
    ['CROPPER', 'FREE_DRAWING', 'LINE_DRAWING', 'TEXT', 'SHAPE', 'RESIZE'].forEach(
      (drawingMode) => {
        imageEditor.startDrawingMode(drawingMode);

        expect(imageEditor.getDrawingMode()).toBe(drawingMode);
      }
    );

    expect(imageEditor.startDrawingMode('CROPPER')).toBe(true);
    expect(imageEditor.startDrawingMode('CROPPER')).toBe(true); // call again, should return true
    expect(imageEditor.startDrawingMode('NOT_A_DRAWING_MODE')).toBe(false);
  });
});