core-graphics
Version:
A core library for creating shape-based graphic editors
70 lines (46 loc) • 2.99 kB
JavaScript
;
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();
});