| '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 ]); |
| }); |
|
|
| }); |
|
|
| }); |
|
|