26 lines
975 B
JavaScript
26 lines
975 B
JavaScript
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([])
|
|
})
|
|
})
|