diff --git a/test/utils/click-nav.test.js b/test/utils/click-nav.test.js index a5ddf3b..6c27716 100644 --- a/test/utils/click-nav.test.js +++ b/test/utils/click-nav.test.js @@ -5,7 +5,7 @@ beforeAll(() => { document.body.innerHTML = `

Text

`; }); -test('AutoSlide plugin', () => { +test('Click nav plugin', () => { const next = jest.fn(); const ws = document.getElementById('webslides'); // Simulates dataset diff --git a/test/utils/hash.test.js b/test/utils/hash.test.js new file mode 100644 index 0000000..23744ac --- /dev/null +++ b/test/utils/hash.test.js @@ -0,0 +1,37 @@ +import DOM from '../../src/js/utils/dom'; +import Hash from '../../src/js/plugins/hash'; + +beforeAll(() => { + document.body.innerHTML = `

Text

`; +}); + +test('Hash plugin', () => { + document.location.hash = '#slide=1'; + const goto = jest.fn(); + const ws = document.getElementById('webslides'); + // Simulates dataset + ws.dataset = {}; + const webslides = { + options: { + changeOnClick: true + }, + goToSlide: goto, + el: ws + }; + + expect(goto).not.toBeCalled(); + + const hash = new Hash(webslides); + + expect(Hash.getSlideNumber()).toBe(0); + DOM.fireEvent(ws, 'ws:slide-change', { + slides: 3, + currentSlide0: 1, + currentSlide: 2 + }); + expect(Hash.getSlideNumber()).toBe(1); + expect(document.location.hash).toBe('#slide=2'); + + DOM.fireEvent(window, 'hashchange'); + expect(goto.mock.calls.length).toBe(1); +});