import GeometryEditor from '@/components/sense/geometry-editor/index.vue' describe('Sense geometry editor keyboard operations', () => { it('adds, moves and removes a point without a mouse', () => { const context = { disabled: false, kind: 'polygon', points: [], undoStack: [], canAdd: true, $emit(event, points) { this.points = points } } context.commit = GeometryEditor.methods.commit.bind(context) GeometryEditor.methods.addCenterPoint.call(context) expect(context.points).toEqual([{ x: 0.5, y: 0.5 }]) const moveEvent = { key: 'ArrowRight', preventDefault: jest.fn() } GeometryEditor.methods.movePointByKeyboard.call(context, 0, moveEvent) expect(context.points[0].x).toBeCloseTo(0.51) expect(moveEvent.preventDefault).toHaveBeenCalled() GeometryEditor.methods.movePointByKeyboard.call(context, 0, { key: 'Delete', preventDefault: jest.fn() }) expect(context.points).toEqual([]) }) })