happen

real browser events

happen wraps the createEvent DOM API to make real event mocking in-browser palatable.

Raw:

wget https://raw.github.com/tmcw/happen/master/happen.js

With component

component install tmcw/happen
npm install happen

var happen = require('happen');

happen.once(element, options) fires an event once. The element must be a DOM element. options must have a type for event type, then can have options:

  • keyCode
  • charCode
  • shiftKey
  • metaKey
  • ctrlKey
  • altKey
  • detail
  • screenX
  • screenY
  • clientX
  • clientY
  • ctrlKey
  • altKey
  • shiftKey
  • metaKey
  • button
var element = document.getElementById('map');
 
// click shortcut 
happen.click(element);
 
// dblclick shortcut 
happen.dblclick(element);
 
// custom options 
happen.dblclick(element, { shift: true });
 
// any other event type under MouseEvents 
happen.once(element, {
    type: 'mousewheel',
    detail: -100
});
 
// The once api takes 
happen.once(
    // element 
    element, {
        // event type (e.type) 
        type: 'mousewheel',
        // any other options 
        detail: -100
    });
// Shortcut - 'click' is shorthand for { type: 'click' } 
$('.foo').happen('click');
 
// Longhand - specify any sort of properties 
$('.foo').happen({ type: 'keyup', keyCode: 50 });
 
// Works on any jQuery selection 
$('.foo, .bar').happen('dblclick');

Shortcuts:

  • happen.click
  • happen.dblclick
  • happen.mousedown
  • happen.mouseup
  • happen.mousemove
  • happen.keydown
  • happen.keyup
  • happen.keypress

Use it with a testing framework, like Jasmine or Mocha.

(IE tests failing due to Chai)