mirror of
https://github.com/webslides/WebSlides.git
synced 2025-08-25 22:20:46 +02:00
New tests: scrollTo and autoslide
This commit is contained in:
43
test/utils/autoslide.test.js
Normal file
43
test/utils/autoslide.test.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import DOM from '../../src/js/utils/dom';
|
||||
import AutoSlide from '../../src/js/plugins/autoslide';
|
||||
|
||||
jest.useFakeTimers();
|
||||
|
||||
beforeAll(() => {
|
||||
document.body.innerHTML = `<div id="webslides"></div><input id="focusable" />`;
|
||||
});
|
||||
|
||||
test('AutoSlide plugin', () => {
|
||||
const next = jest.fn();
|
||||
const ws = document.getElementById('webslides');
|
||||
const webslides = {
|
||||
options: {
|
||||
autoslide: 100
|
||||
},
|
||||
goNext: next,
|
||||
el: ws
|
||||
};
|
||||
|
||||
expect(next).not.toBeCalled();
|
||||
|
||||
const autoslide = new AutoSlide(webslides);
|
||||
DOM.fireEvent(ws, 'ws:init');
|
||||
|
||||
// Wait until next execution
|
||||
jest.runTimersToTime(101);
|
||||
|
||||
expect(next.mock.calls.length).toBe(1);
|
||||
|
||||
// Wait until next execution
|
||||
jest.runTimersToTime(101);
|
||||
|
||||
expect(next.mock.calls.length).toBe(2);
|
||||
|
||||
// Pause on focus
|
||||
document.getElementById('focusable').focus();
|
||||
DOM.fireEvent(document.body, 'focus');
|
||||
jest.runTimersToTime(101);
|
||||
|
||||
expect(next.mock.calls.length).toBe(2);
|
||||
|
||||
});
|
23
test/utils/scroll-to.test.js
Normal file
23
test/utils/scroll-to.test.js
Normal file
@@ -0,0 +1,23 @@
|
||||
jest.useFakeTimers();
|
||||
|
||||
beforeAll(() => {
|
||||
const brs = '<br />'.repeat(20);
|
||||
document.body.innerHTML = `<div id="webslides">${brs}</div>`;
|
||||
});
|
||||
|
||||
test('ScrollTo utility', () => {
|
||||
const ws = document.getElementById('webslides');
|
||||
// Needs to be required and not imported because const defined in top level
|
||||
const scrollTo = require('../../src/js/utils/scroll-to');
|
||||
const cb = jest.fn();
|
||||
|
||||
scrollTo.default(100, 500, cb);
|
||||
|
||||
expect(cb).not.toBeCalled();
|
||||
expect(ws.scrollTop).toBe(0);
|
||||
|
||||
jest.runAllTimers();
|
||||
|
||||
expect(cb).toBeCalled();
|
||||
expect(ws.scrollTop).toBe(100);
|
||||
});
|
Reference in New Issue
Block a user