Skip to content

Commit

Permalink
Merge pull request #421 from zjffun/chore
Browse files Browse the repository at this point in the history
chore: fix a eslint error, update waitForDragDelay params and add some LFs and docblocks
  • Loading branch information
tsov authored Jul 20, 2020
2 parents e8f6091 + 0e15a2d commit 7a98fcc
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 27 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"watch": "node scripts/watch.js",
"prepare": "yarn build:development",
"prepublishOnly": "yarn build:production",
"lint": "eslint ./src --max-warnings 0",
"lint": "eslint ./src ./scripts --max-warnings 0",
"esdoc": "esdoc -c esdoc.json",
"test": "jest --config config.json",
"test-ci": "jest --config config.json --coverage && codecov",
Expand Down
4 changes: 3 additions & 1 deletion scripts/test/matchers/sensor.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ function toHaveTriggeredSensorEvent(received, expectedEventName, count) {
let triggered = false;
let callCount = 0;
function callback() {
count !== undefined && (callCount = callCount + 1);
if (count !== undefined) {
callCount++;
}
triggered = true;
}

Expand Down
14 changes: 14 additions & 0 deletions src/Draggable/Sensors/MouseSensor/MouseSensor.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ export default class MouseSensor extends Sensor {
*/
this.mouseDownTimeout = null;

/**
* Save pageX coordinates for delay drag
* @property {Numbre} pageX
* @private
*/
this.pageX = null;

/**
* Save pageY coordinates for delay drag
* @property {Numbre} pageY
* @private
*/
this.pageY = null;

this[onContextMenuWhileDragging] = this[onContextMenuWhileDragging].bind(this);
this[onMouseDown] = this[onMouseDown].bind(this);
this[onMouseMove] = this[onMouseMove].bind(this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ describe('MouseSensor', () => {
}
expect(dragFlow).toHaveTriggeredSensorEvent('drag:start', 1);
});

it('only triggers `drag:start` sensor event once when distance is met after delay', () => {
function dragFlow() {
clickMouse(draggableElement);
Expand Down
14 changes: 14 additions & 0 deletions src/Draggable/Sensors/TouchSensor/TouchSensor.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,20 @@ export default class TouchSensor extends Sensor {
*/
this.touchMoved = false;

/**
* Save pageX coordinates for delay drag
* @property {Numbre} pageX
* @private
*/
this.pageX = null;

/**
* Save pageY coordinates for delay drag
* @property {Numbre} pageY
* @private
*/
this.pageY = null;

this[onTouchStart] = this[onTouchStart].bind(this);
this[onTouchEnd] = this[onTouchEnd].bind(this);
this[onTouchMove] = this[onTouchMove].bind(this);
Expand Down
8 changes: 8 additions & 0 deletions src/Draggable/Sensors/TouchSensor/tests/TouchSensor.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@ describe('TouchSensor', () => {
touchSensor.detach();
sandbox.parentNode.removeChild(sandbox);
}

describe('common', () => {
beforeEach(setup);

afterEach(teardown);

it('cancels `drag:start` event when canceling sensor event', () => {
sandbox.addEventListener('drag:start', (event) => {
event.detail.cancel();
Expand All @@ -51,6 +54,7 @@ describe('TouchSensor', () => {

expect(dragFlow).not.toHaveTriggeredSensorEvent('drag:start');
});

it('prevents context menu while dragging', () => {
touchStart(draggableElement);
let contextMenuEvent = triggerEvent(draggableElement, 'contextmenu');
Expand Down Expand Up @@ -94,12 +98,14 @@ describe('TouchSensor', () => {
expect(touchEndEvent.defaultPrevented).toBe(true);
});
});

describe('using distance', () => {
beforeEach(() => {
setup({delay: 0, distance: 1});
});

afterEach(teardown);

it('does not trigger `drag:start` before distance has been travelled', () => {
function dragFlow() {
touchStart(draggableElement);
Expand Down Expand Up @@ -153,6 +159,7 @@ describe('TouchSensor', () => {
beforeEach(() => {
setup({delay: DRAG_DELAY, distance: 0});
});

afterEach(teardown);

it('does not trigger `drag:start` before delay ends', () => {
Expand Down Expand Up @@ -210,6 +217,7 @@ describe('TouchSensor', () => {
beforeEach(() => {
setup({delay: DRAG_DELAY, distance: 1});
});

afterEach(teardown);

it('does not trigger `drag:start` before delay ends', () => {
Expand Down
50 changes: 25 additions & 25 deletions src/Draggable/tests/Draggable.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const containerChildren = newInstance.getDraggableElementsForContainer(draggableElement.parentNode);

Expand All @@ -349,7 +349,7 @@ describe('Draggable', () => {
const dynamicContainer = document.querySelector('.DynamicContainer');

clickMouse(draggableElement);
waitForDragDelay(100);
waitForDragDelay();
moveMouse(dynamicContainer);

expect(dragOverContainerHandler).not.toHaveBeenCalled();
Expand All @@ -361,7 +361,7 @@ describe('Draggable', () => {
expect(newInstance.containers).toEqual([...containers, dynamicContainer]);

clickMouse(draggableElement);
waitForDragDelay(100);
waitForDragDelay();
moveMouse(dynamicContainer);
expect(dragOverContainerHandler).toHaveBeenCalled();

Expand All @@ -383,7 +383,7 @@ describe('Draggable', () => {
const dynamicContainer = document.querySelector('.DynamicContainer');

clickMouse(draggableElement);
waitForDragDelay(100);
waitForDragDelay();
moveMouse(dynamicContainer);

expect(dragOverContainerHandler).toHaveBeenCalled();
Expand All @@ -398,7 +398,7 @@ describe('Draggable', () => {
newInstance.on('drag:over:container', dragOverContainerHandler);

clickMouse(draggableElement);
waitForDragDelay(100);
waitForDragDelay();
moveMouse(dynamicContainer);

expect(dragOverContainerHandler).not.toHaveBeenCalled();
Expand Down Expand Up @@ -483,7 +483,7 @@ describe('Draggable', () => {

triggerEvent(draggableElement, 'mousedown', {button: 0});
// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const call = callback.mock.calls[0][0];

Expand All @@ -507,7 +507,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

triggerEvent(draggableElement, 'dragstart', {button: 0});

Expand Down Expand Up @@ -540,7 +540,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

triggerEvent(draggableElement, 'dragstart', {button: 0});

Expand All @@ -559,7 +559,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const callback = jest.fn();
newInstance.on('drag:move', callback);
Expand Down Expand Up @@ -593,7 +593,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const callback = jest.fn();
newInstance.on('drag:stop', callback);
Expand Down Expand Up @@ -641,7 +641,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(newInstance.source.classList).toContain('draggable-source--is-dragging');

Expand All @@ -658,7 +658,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const source = newInstance.source;

Expand All @@ -683,7 +683,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

const source = newInstance.source;

Expand All @@ -703,7 +703,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(document.body.classList).toContain('draggable--is-dragging');

Expand All @@ -721,7 +721,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();
expect(document.body.classList).toContain('draggable--is-dragging');

triggerEvent(document.body, 'mouseup', {button: 0});
Expand All @@ -743,7 +743,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(document.body.classList).not.toContain('draggable--is-dragging');

Expand All @@ -761,7 +761,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

triggerEvent(draggableElement, 'mouseup', {button: 0});

Expand All @@ -779,7 +779,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

triggerEvent(document.body, 'mouseup', {button: 0});

Expand All @@ -802,7 +802,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(containers[0].classList).toContain('draggable-container--is-dragging');

Expand All @@ -820,7 +820,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(containers[0].classList).toContain('draggable-container--is-dragging');

Expand All @@ -842,7 +842,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(containers[0].classList).not.toContain('draggable-container--is-dragging');

Expand All @@ -859,7 +859,7 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(draggableElement.classList.contains(newInstance.getClassNameFor('source:original'))).toBeTruthy();

Expand Down Expand Up @@ -887,21 +887,21 @@ describe('Draggable', () => {
triggerEvent(draggableElement, 'mousedown', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

expect(newInstance.isDragging()).toBe(true);

document.elementFromPoint = () => draggableElement.nextElementSibling;
triggerEvent(draggableElement.nextElementSibling, 'mousemove', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

document.elementFromPoint = () => document.body;
triggerEvent(document.body, 'mousemove', {button: 0});

// Wait for delay
waitForDragDelay(100);
waitForDragDelay();

triggerEvent(document.body, 'mouseup', {button: 0});
});
Expand Down

0 comments on commit 7a98fcc

Please sign in to comment.