UNPKG

@glidejs/glide

Version:

Glide.js is a dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more

54 lines (38 loc) 1.36 kB
import EventsBinder from '../../src/core/event/events-binder' let events = null let element = null let callback = jest.fn() describe('EventsBinder should', () => { beforeEach(() => { events = new EventsBinder() element = document.createElement('div') }) afterEach(() => { element.remove() }) test('create and remove event listener from element', () => { let addFn = jest.fn() let rmFn = jest.fn() element.addEventListener = addFn element.removeEventListener = rmFn events.on('click', element, callback) expect(addFn).toHaveBeenCalledWith('click', callback, expect.any(Boolean)) events.off('click', element) expect(rmFn).toHaveBeenCalledWith('click', callback, expect.any(Boolean)) }) test('store created listeners when binding with `on`', () => { events.on('click', element, callback) expect(events.listeners).toHaveProperty('click') expect(events.listeners['click']).toBe(callback) }) test('hold previously stored listeners when unbinding with `off`', () => { events.on('click', element, callback) events.off('click', element) expect(events.listeners).toHaveProperty('click') }) test('remove stored listeners when destroying', () => { events.on('click', element, callback) events.destroy() expect(events).not.toHaveProperty('listeners') }) })