Skip to content

Instantly share code, notes, and snippets.

@laser
Created March 24, 2012 00:37
Show Gist options
  • Save laser/2176766 to your computer and use it in GitHub Desktop.
Save laser/2176766 to your computer and use it in GitHub Desktop.
Mocking behavior using Sinon not working properly w/jQuery delegate method
module("Event delegation test");
test("Keyup in view should trigger callback in controller", function() {
var Controller,
View,
$el,
c,
v,
mock;
Controller = function() {
var self = {};
self.handler = function(e) {
console.log("got handled");
};
return self;
};
View = function($el, controller) {
var self = {};
self.render = function() {
$el.html("<input name=\"derp\" type=\"text\" id=\"derp\"/>");
$el.delegate("#derp", "keyup", controller.handler);
};
return self;
};
$el = jQuery("<div></div>");
c = new Controller();
v = new View($el, c);
mock = this.mock(c);
v.render();
mock.expects("handler").once();
$el.find("input").val("bar").trigger("keyup");
equal($el.find("input").val(), "bar"); // passes!
mock.verify();
expect(0);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment