|
'use strict'; |
|
|
|
var should = require('should'); |
|
var Room = require('../../source/room'); |
|
var Broadcast = require('../../source/broadcast'); |
|
var Socket = require('../fake_socket'); |
|
|
|
describe('Broadcast', function () { |
|
|
|
beforeEach(function () { |
|
Broadcast.init(Room); |
|
}); |
|
|
|
afterEach(function () { |
|
Room.flush(); |
|
}); |
|
|
|
it('should put sockets in the all room', function () { |
|
var sock_1 = new Socket(); |
|
var sock_2 = new Socket(); |
|
var sock_3 = new Socket(); |
|
|
|
Room.get('all').length().should.equal(3); |
|
}); |
|
|
|
it('should broadcast to all sockets', function () { |
|
var sock_1 = new Socket(); |
|
var sock_2 = new Socket(); |
|
var sock_3 = new Socket(); |
|
|
|
new Socket.listen(function (event) { |
|
event.should.equal('hello'); |
|
this.should.not.equal(sock_1.socket); |
|
callCount++; |
|
}); |
|
|
|
var callCount = 0; |
|
sock_1.broadcast('hello'); |
|
callCount.should.equal(2); |
|
}); |
|
|
|
it('should broadcast to a room', function () { |
|
var room = Room.get('random'); |
|
|
|
var sock_1 = new Socket(); |
|
var sock_2 = new Socket(); |
|
var sock_3 = new Socket(); |
|
|
|
sock_1.join('random'); |
|
sock_2.join('random'); |
|
sock_3.join('random'); |
|
|
|
room.length().should.equal(3); |
|
|
|
new Socket.listen(function (event) { |
|
event.should.equal('hello'); |
|
this.should.not.equal(sock_1); |
|
callCount++; |
|
}); |
|
|
|
var callCount = 0; |
|
sock_1.broadcast.to('random').emit('hello'); |
|
callCount.should.equal(2); |
|
}); |
|
|
|
}); |
|
|