jam-cloud/web/spec/javascripts/callbackReceiver.spec.js

48 lines
1.7 KiB
JavaScript

v(function(context, $) {
describe("Callbacks", function() {
describe("makeStatic", function() {
it("should create static function which invokes instance function", function() {
var MyObj = function() {
this.hey = function() { return "hey"; };
};
var myInst = new MyObj();
context.JK.Callbacks.makeStatic("callHey", myInst.hey);
var result = context.JK.Callbacks.callHey();
expect(result).toEqual("hey");
});
});
describe("invocation", function() {
it("should pass arguments", function() {
var MyObj = function() {
this.addTwo = function(input) { return input+2; };
};
var myInst = new MyObj();
context.JK.Callbacks.makeStatic("addTwo", myInst.addTwo);
var result = context.JK.Callbacks.addTwo(5);
expect(result).toEqual(7);
});
});
describe("context", function() {
it("should set 'this' to provided context", function() {
var MyObj = function() {
this.counter = 0;
this.addToCounter = function(incAmount) {
this.counter += incAmount;
};
};
var myInst = new MyObj();
context.JK.Callbacks.makeStatic("incInstanceCounter", myInst.addToCounter, myInst);
context.JK.Callbacks.incInstanceCounter(2);
context.JK.Callbacks.incInstanceCounter(3);
expect(myInst.counter).toEqual(5);
});
});
});
})(window, jQuery);