UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

70 lines (46 loc) 2.99 kB
'use strict'; var _tap = require('tap'); var _editorStateReducer = require('../editor-state-reducer'); var _editorStateReducer2 = _interopRequireDefault(_editorStateReducer); var _editorState = require('../editor-state'); var _editorEvents = require('../editor-events'); var _testHistorySpec = require('./test-history.spec.js'); var _modes = require('../../declarations/modes'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var INITIAL_STATE = (0, _editorState.getInitialEditorState)({ shapesDeclarations: {}, author: _testHistorySpec.ALICE }); (0, _tap.test)('setViewport editor event', function (t) { var expectedViewport = { x: 10, y: 20 }; var afterSet = (0, _editorStateReducer2.default)(INITIAL_STATE, (0, _editorEvents.setViewport)(expectedViewport)); t.deepEqual(afterSet.viewport, expectedViewport); t.end(); }); (0, _tap.test)('moving viewport: setting mode', function (t) { var expectedMode = (0, _modes.modeMovingViewport)({ moving: false, dx: 0, dy: 0 }); var afterSet = (0, _editorStateReducer2.default)(INITIAL_STATE, (0, _editorEvents.setMode)((0, _modes.modeMovingViewport)())); t.deepEqual(afterSet.mode, expectedMode); t.assert((0, _modes.isMovingViewportMode)(expectedMode)); t.end(); }); (0, _tap.test)('moving viewport: entering mode', function (t) { var evs = [(0, _editorEvents.setMode)((0, _modes.modeMovingViewport)()), (0, _editorEvents.canvasMouseDown)({ x: 10, y: 10, button: _editorEvents.ButtonType.Left }), (0, _editorEvents.canvasMouseMove)({ x: 20, y: 20 })]; var expectedMode = (0, _modes.modeMovingViewport)({ moving: true, dx: -10, dy: -10 }); var afterEntered = evs.reduce(_editorStateReducer2.default, INITIAL_STATE); t.deepEqual(afterEntered.mode, expectedMode); t.end(); }); (0, _tap.test)('moving viewport: updating mode', function (t) { var evs = [(0, _editorEvents.setMode)((0, _modes.modeMovingViewport)()), (0, _editorEvents.canvasMouseDown)({ x: 10, y: 10, button: _editorEvents.ButtonType.Left }), (0, _editorEvents.canvasMouseMove)({ x: 30, y: 30 })]; var expectedMode = (0, _modes.modeMovingViewport)({ moving: true, dx: -20, dy: -20 }); var afterLeft = evs.reduce(_editorStateReducer2.default, INITIAL_STATE); t.deepEqual(afterLeft.mode, expectedMode); t.end(); }); (0, _tap.test)('moving viewport: leaving mode', function (t) { var evs = [(0, _editorEvents.setMode)((0, _modes.modeMovingViewport)()), (0, _editorEvents.canvasMouseDown)({ x: 10, y: 10, button: _editorEvents.ButtonType.Left }), (0, _editorEvents.canvasMouseMove)({ x: 20, y: 20 }), (0, _editorEvents.canvasMouseUp)({ x: 20, y: 20, button: _editorEvents.ButtonType.Left })]; var expectedMode = (0, _modes.modeMovingViewport)(); var expectedViewport = { x: -10, y: -10 }; var afterLeft = evs.reduce(_editorStateReducer2.default, INITIAL_STATE); t.deepEqual(afterLeft.mode, expectedMode); t.deepEqual(afterLeft.viewport, expectedViewport); t.end(); });