1
0
mirror of https://github.com/webslides/WebSlides.git synced 2025-08-23 21:33:09 +02:00

Reorganizing tests

This commit is contained in:
displaynone
2017-05-15 15:26:48 +02:00
parent 2fb8c1e816
commit c82fd6507a
10 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
import Scroll from '../../src/js/plugins/scroll';
jest.useFakeTimers();
// Copy of DOM.fireEvent, but using wheel deltas
const fireEvent = (target, eventType, deltaX, deltaY) => {
const event = new CustomEvent(eventType);
event.deltaX = deltaX;
event.deltaY = deltaY;
target.dispatchEvent(event);
};
beforeAll(() => {
const brs = '<br />'.repeat(20);
document.body.innerHTML = `<div id="webslides">${brs}</div>`;
});
test('Scroll utility', () => {
// Forces mobile detection
window.navigator = {userAgent: 'Android'};
const ws = document.getElementById('webslides');
const next = jest.fn();
const prev = jest.fn();
let disabled = true;
const webslides = {
el: ws,
isDisabled: () => {return disabled;},
isMoving: false,
isVertical: false,
goNext: next,
goPrev: prev,
options: {
navigateOnScroll: true,
scrollWait: 200,
minWheelDelta: 50
}
};
const scroll = new Scroll(webslides);
fireEvent(ws, 'wheel', 300, 200);
expect(next).not.toBeCalled();
expect(prev).not.toBeCalled();
// Wait until next execution
jest.runTimersToTime(201);
expect(next.mock.calls.length).toBe(0);
expect(prev.mock.calls.length).toBe(0);
disabled = false;
fireEvent(ws, 'wheel', 300, 200);
jest.runTimersToTime(201);
expect(next.mock.calls.length).toBe(1);
expect(prev.mock.calls.length).toBe(0);
fireEvent(ws, 'wheel', -200, -300);
jest.runTimersToTime(201);
expect(next.mock.calls.length).toBe(1);
expect(prev.mock.calls.length).toBe(1);
});