core-graphics
Version:
A core library for creating shape-based graphic editors
166 lines (126 loc) • 5.03 kB
JavaScript
'use strict';
var _tap = require('tap');
var _initialStates = require('./initial-states');
var _editorStateReducer = require('../editor-state-reducer');
var _editorStateReducer2 = _interopRequireDefault(_editorStateReducer);
var _editorEvents = require('../editor-events');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _tap.test)('mouse down', function (t) {
var dx = 10,
dy = 10,
button = _editorEvents.ButtonType.Left;
var ev = (0, _editorEvents.canvasMouseDown)({ x: dx, y: dy, button: button });
var nextState = (0, _editorStateReducer2.default)(_initialStates.EMPTY_INITIAL_STATE, ev);
var _nextState$mouse = nextState.mouse;
var down = _nextState$mouse.down;
var inside = _nextState$mouse.inside;
var x = _nextState$mouse.x;
var y = _nextState$mouse.y;
var lastDownX = _nextState$mouse.lastDownX;
var lastDownY = _nextState$mouse.lastDownY;
t.assert(nextState !== _initialStates.EMPTY_INITIAL_STATE);
t.equal(down, true);
t.equal(inside, true);
t.equal(x, dx);
t.equal(y, dy);
t.equal(lastDownX, dx);
t.equal(lastDownY, dy);
t.end();
});
(0, _tap.test)('mouse down -> mouse up', function (t) {
var sx = 10,
sy = 10,
ux = 20,
uy = 30,
button = _editorEvents.ButtonType.Left;
var evs = [(0, _editorEvents.canvasMouseDown)({ x: sx, y: sy, button: button }), (0, _editorEvents.canvasMouseUp)({ x: ux, y: uy, button: button })];
var nextState = evs.reduce(_editorStateReducer2.default, _initialStates.EMPTY_INITIAL_STATE);
var _nextState$mouse2 = nextState.mouse;
var down = _nextState$mouse2.down;
var inside = _nextState$mouse2.inside;
var x = _nextState$mouse2.x;
var y = _nextState$mouse2.y;
var lastDownX = _nextState$mouse2.lastDownX;
var lastDownY = _nextState$mouse2.lastDownY;
t.assert(nextState !== _initialStates.EMPTY_INITIAL_STATE);
t.equal(down, false);
t.equal(inside, true);
t.equal(x, ux);
t.equal(y, uy);
t.equal(lastDownX, sx);
t.equal(lastDownY, sy);
t.end();
});
(0, _tap.test)('mouse leave', function (t) {
var lx = 10,
ly = 10;
var evs = [(0, _editorEvents.canvasModifierKeyDown)(_editorEvents.SceneModifierKey.Shift), (0, _editorEvents.canvasMouseLeave)({ x: lx, y: ly })];
var nextState = evs.reduce(_editorStateReducer2.default, _initialStates.EMPTY_INITIAL_STATE);
var modifierKeys = nextState.modifierKeys;
var _nextState$mouse3 = nextState.mouse;
var down = _nextState$mouse3.down;
var inside = _nextState$mouse3.inside;
var x = _nextState$mouse3.x;
var y = _nextState$mouse3.y;
t.assert(nextState !== _initialStates.EMPTY_INITIAL_STATE);
t.equal(down, false);
t.equal(inside, false);
t.equal(x, lx);
t.equal(y, ly);
t.assert(!modifierKeys[_editorEvents.SceneModifierKey.Shift]);
t.end();
});
(0, _tap.test)('mouse leave -> mouse enter', function (t) {
var lx = 10,
ly = 20,
ex = 30,
ey = 40;
var evs = [(0, _editorEvents.canvasMouseLeave)({ x: lx, y: ly }), (0, _editorEvents.canvasModifierKeyDown)(_editorEvents.SceneModifierKey.Shift), (0, _editorEvents.canvasMouseEnter)({ x: ex, y: ey })];
var nextState = evs.reduce(_editorStateReducer2.default, _initialStates.EMPTY_INITIAL_STATE);
var modifierKeys = nextState.modifierKeys;
var _nextState$mouse4 = nextState.mouse;
var down = _nextState$mouse4.down;
var inside = _nextState$mouse4.inside;
var x = _nextState$mouse4.x;
var y = _nextState$mouse4.y;
t.assert(nextState !== _initialStates.EMPTY_INITIAL_STATE);
t.equal(down, false);
t.equal(inside, true);
t.equal(x, ex);
t.equal(y, ey);
t.assert(!modifierKeys[_editorEvents.SceneModifierKey.Shift]);
t.end();
});
(0, _tap.test)('mouse move', function (t) {
var dx = 10,
dy = 20,
mx = 30,
my = 40;
var evs = [(0, _editorEvents.canvasMouseDown)({ x: dx, y: dy }), (0, _editorEvents.canvasMouseMove)({ x: mx, y: my })];
var nextState = evs.reduce(_editorStateReducer2.default, _initialStates.EMPTY_INITIAL_STATE);
var _nextState$mouse5 = nextState.mouse;
var down = _nextState$mouse5.down;
var inside = _nextState$mouse5.inside;
var x = _nextState$mouse5.x;
var y = _nextState$mouse5.y;
var lastDownX = _nextState$mouse5.lastDownX;
var lastDownY = _nextState$mouse5.lastDownY;
t.assert(nextState !== _initialStates.EMPTY_INITIAL_STATE);
t.equal(down, true);
t.equal(inside, true);
t.equal(lastDownX, dx);
t.equal(lastDownY, dy);
t.equal(x, mx);
t.equal(y, my);
t.end();
});
(0, _tap.test)('mod key down - up', function (t) {
var key = _editorEvents.SceneModifierKey.Shift;
var downEv = (0, _editorEvents.canvasModifierKeyDown)(key);
var afterDown = (0, _editorStateReducer2.default)(_initialStates.EMPTY_INITIAL_STATE, downEv);
t.assert(!!afterDown.modifierKeys[key]);
var upEv = (0, _editorEvents.canvasModifierKeyUp)(key);
var afterUp = (0, _editorStateReducer2.default)(afterDown, upEv);
t.assert(!afterUp.modifierKeys[key]);
t.end();
});