text: 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);
    });
  });
  