UNPKG

burger

Version:

A lightweight turbolinks friendly JavaScript library

66 lines (48 loc) 1.28 kB
jest .dontMock('../mixins/delegate') .dontMock('../mixins/events') .dontMock('../util/mixin') Events = require('../mixins/events') $ = require('jquery') describe 'Events', -> class Stub extends Events constructor: (el) -> @element = $(el) childEl = $('<div></div>') wrapperEl = $('<div></div>') wrapperEl.append(childEl) child = new Stub(childEl) wrapper = new Stub(wrapperEl) it 'listens to events on itself and its children', -> count = 0 inc = -> count++ wrapper.on('inc', inc) wrapper.emit('inc') child.emit('inc') child.emit('inc') expect(count).toEqual(3) wrapper.off('inc', inc) it 'also listens to events from its parent', -> count = 0 inc = -> count++ child.on('inc', inc) wrapper.emit('inc') expect(count).toEqual(1) wrapper.off('inc', inc) it 'can listen to single events', -> count = 0 inc = -> count++ wrapper.once('inc', inc) child.emit('inc') child.emit('inc') expect(count).toEqual(1) wrapper.off('inc', inc) it 'can turn off elements', -> count = 0 inc = -> count++ wrapper.on('inc', inc) child.emit('inc') wrapper.off('inc', inc) child.emit('inc') child.emit('inc') expect(count).toEqual(1)