|
'use strict'; |
|
|
|
var should = require('should'); |
|
var Broadcast = require('../../source/broadcast'); |
|
|
|
var Room = { |
|
last: {}, |
|
get: function (name) { |
|
return { |
|
id: name, |
|
broadcast: function (sender, event, a1, a2, a3) { |
|
Room.last[name] = [sender, event, a1, a2, a3]; |
|
} |
|
}; |
|
} |
|
}; |
|
|
|
describe('Broadcast', function () { |
|
|
|
before(function () { |
|
Broadcast.init(Room); |
|
}); |
|
|
|
describe('.bind', function () { |
|
|
|
it('should bind to obj', function () { |
|
var obj = {}; |
|
|
|
var broadcast = Broadcast.bind(obj); |
|
|
|
broadcast.should.have.type('function'); |
|
broadcast.to.should.have.type('function'); |
|
}); |
|
|
|
}); |
|
|
|
describe(':broadcast', function () { |
|
|
|
it('should remember itself', function () { |
|
var obj = { id: 'self' }; |
|
var broadcast = Broadcast.bind(obj); |
|
|
|
broadcast('event', 1, 2, 3); |
|
Room.last.all.should.eql([ 'self', 'event', 1, 2, 3 ]); |
|
}); |
|
|
|
}); |
|
|
|
describe(':broadcastTo', function () { |
|
|
|
it('should broadcast to a room', function () { |
|
var obj = { id: 'self' }; |
|
var broadcast = Broadcast.bind(obj); |
|
|
|
broadcast.to('my_room').emit('event', 1, 2, 3); |
|
|
|
Room.last.my_room.should.eql([ 'self', 'event', 1, 2, 3 ]); |
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|