'use strict'; var should = require('should'); var Namespace = require('../../source/namespace'); var Socket = require('../fake_socket'); describe('Namespace', function () { beforeEach(function () { Socket.reset(); }); describe(':constructor', function () { it('should create a new namespace', function () { var item = new Socket(); var namespace = new Namespace('name', item); namespace.name.should.equal('name'); namespace.item.should.equal(item); }); }); describe(':emit', function () { it('should emit to a namespace', function () { var item = new Socket(); var namespace = new Namespace('ns', item); namespace.emit('event', 1, 2, 3); item.last().should.eql(['ns.event', 1, 2, 3]); }); }); describe(':broadcast', function () { it('should broadcast to a namespace', function () { var item = new Socket(); var other = new Socket(); var namespace = new Namespace('ns', item); namespace.broadcast('broadcast', 3, 2, 1); should.equal(undefined, item.last()); other.last().should.eql(['ns.broadcast', 3, 2, 1]); }); }); });