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 = `
`;
});
-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 = ``;
+});
+
+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);
+});