UNPKG

jsf-mock

Version:

Mock implementation for jsf.js

116 lines (93 loc) 3.97 kB
/*jshint browser:true*/ /*global describe, it, expect, beforeEach, jasmine, jsfmock*/ describe('jsf.mock.js', function () { 'use strict'; function noop () {} var jsf; beforeEach(function () { jsf = jsfmock(); }); describe('jsf.ajax', function () { it('should provide a fire function', function () { expect(jsf.ajax.fire).toBeDefined(); }); it('should provide addOnEvent to add a listener', function () { jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize()).toEqual(1); }); it('should fire handles when fire is called', function () { var handler = jasmine.createSpy('handler'), eventData = {}; jsf.ajax.addOnEvent(handler); jsf.ajax.fire(eventData); expect(handler).toHaveBeenCalledWith(eventData); }); it('should fire an event only on functions with the given name if provided (issue #2)', function (){ var handlerSpy = jasmine.createSpy('handler'), eventData = {}; jsf.ajax.addOnEvent(handlerSpy); jsf.ajax.addOnEvent(function handle (event) { handlerSpy(event); }); jsf.ajax.fire(eventData, 'handle'); expect(handlerSpy.calls.count()).toEqual(1); }); it('should fire only the error events when error is given as the first argument of the query', function (){ var handlerSpy = jasmine.createSpy('handler'), eventData = {}; jsf.ajax.addOnError(handlerSpy); jsf.ajax.fire('error', eventData); expect(handlerSpy.calls.count()).toEqual(1); }); describe('handlersSize()', function () { it('should return the size of the current handlers', function () { expect(jsf.ajax.handlersSize()).toEqual(0); jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize()).toEqual(1); }); it('should return the size of the error handlers if called with error as an argument', function () { expect(jsf.ajax.handlersSize('error')).toEqual(0); jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize('error')).toEqual(0); jsf.ajax.addOnError(noop); expect(jsf.ajax.handlersSize('error')).toEqual(1); }); it('should return the size of the handlers with the given name when called with an agument other than error', function () { expect(jsf.ajax.handlersSize('name1')).toEqual(0); jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize('name1')).toEqual(0); jsf.ajax.addOnEvent(function name1() {}); expect(jsf.ajax.handlersSize('name1')).toEqual(1); jsf.ajax.addOnError(function name1() {}); expect(jsf.ajax.handlersSize('name1')).toEqual(2); }); }); describe('clearHandlers()', function () { it('should clear all existing handlers when no argument is given',function () { jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize()).toBe(1); jsf.ajax.clearHandlers(); expect(jsf.ajax.handlersSize()).toBe(0); }); it('should clear all error handlers when error is given as argument',function () { jsf.ajax.addOnError(noop); jsf.ajax.addOnEvent(noop); expect(jsf.ajax.handlersSize()).toBe(1); expect(jsf.ajax.handlersSize('error')).toBe(1); jsf.ajax.clearHandlers('error'); expect(jsf.ajax.handlersSize()).toBe(1); expect(jsf.ajax.handlersSize('error')).toBe(0); }); it('should clear named handlers with the given name as argument',function () { jsf.ajax.addOnError(function h1 () {}); jsf.ajax.addOnEvent(function h1 () {}); jsf.ajax.addOnEvent(function h1 () {}); expect(jsf.ajax.handlersSize()).toBe(2); expect(jsf.ajax.handlersSize('error')).toBe(1); jsf.ajax.clearHandlers('h1'); expect(jsf.ajax.handlersSize()).toBe(0); expect(jsf.ajax.handlersSize('error')).toBe(0); }); }); }); });