Spaces:
Running
Running
| import { fabric } from 'fabric'; | |
| import Graphics from '@/graphics'; | |
| import { | |
| setCachedUndoDataForDimension, | |
| getCachedUndoDataForDimension, | |
| makeSelectionUndoData, | |
| makeSelectionUndoDatum, | |
| } from '@/helper/selectionModifyHelper'; | |
| describe('selectionModifyHelper', () => { | |
| let graphics, obj1, obj2; | |
| const rectOption = { | |
| width: 10, | |
| height: 10, | |
| top: 10, | |
| left: 10, | |
| scaleX: 1, | |
| scaleY: 1, | |
| angle: 0, | |
| }; | |
| beforeEach(() => { | |
| graphics = new Graphics(document.createElement('canvas')); | |
| obj1 = new fabric.Rect(rectOption); | |
| obj2 = new fabric.Rect(rectOption); | |
| }); | |
| it('should set/get cached undo data', () => { | |
| const undoData = [{ id: 1 }]; | |
| setCachedUndoDataForDimension(undoData); | |
| expect(getCachedUndoDataForDimension()).toEqual(undoData); | |
| }); | |
| describe('makeSelectionUndoData', () => { | |
| it('should make object undo data', () => { | |
| const result = makeSelectionUndoData(obj1, (obj) => obj); | |
| expect(result).toEqual([obj1]); | |
| }); | |
| it('should make selection undo data', () => { | |
| const selection = graphics.getActiveSelectionFromObjects([obj1, obj2]); | |
| const result = makeSelectionUndoData(selection, (obj) => obj); | |
| expect(result).toEqual([obj1, obj2]); | |
| }); | |
| }); | |
| describe('makeSelectionUndoDatum', () => { | |
| it('should return undo datum', () => { | |
| const result = makeSelectionUndoDatum(1, obj1, true); | |
| expect(result).toEqual({ | |
| id: 1, | |
| width: obj1.width, | |
| height: obj1.height, | |
| top: obj1.top, | |
| left: obj1.left, | |
| angle: obj1.angle, | |
| scaleX: obj1.scaleX, | |
| scaleY: obj1.scaleY, | |
| }); | |
| }); | |
| }); | |
| }); | |