aaronbullard/node-eventbus

View on GitHub
src/EventBus.spec.js

Summary

Maintainability
A
1 hr
Test Coverage
var EventBus = require('./index.js').EventBus;

function ThingWasSavedEvent(param1, param2){
  this.param1 = param1;
  this.param2 = param2
};

describe('EventBus', function(){

  it('it calls listeners', function(){
    var listenerWasCalled = false;

    // Register listener
    EventBus.listen('ThingWasSavedEvent', function(event){
      expect(event.param1).toEqual('one');
      expect(event.param2).toEqual('two');
      listenerWasCalled = true;
    });

    var event = new ThingWasSavedEvent('one', 'two');

    EventBus.fire(event);
    expect(listenerWasCalled).toEqual(true);
  });


  it('it calls subscribers', function(){
    var subscriberWasCalled = false;

    var MySubscriber = function(){
      this.handle = function(event){
        expect(event.param1).toEqual('one');
        expect(event.param2).toEqual('two');
        subscriberWasCalled = true;
      }
    };

    EventBus.subscribe('ThingWasSavedEvent', new MySubscriber());

    var event = new ThingWasSavedEvent('one', 'two');

    EventBus.fire(event);

    expect(subscriberWasCalled).toEqual(true);
  });
});