Skip to content

Commit

Permalink
Adding test cases for primus-emitter
Browse files Browse the repository at this point in the history
  • Loading branch information
cayasso committed Nov 5, 2013
1 parent 7e90f53 commit ed541ff
Show file tree
Hide file tree
Showing 2 changed files with 194 additions and 1 deletion.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"mocha": "*",
"expect.js": "*",
"primus": "~1.4.5",
"ws": "~0.4.27"
"ws": "~0.4.27",
"primus-emitter": "~2.0.x"
}
}
192 changes: 192 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -795,4 +795,196 @@ describe('primus-rooms', function () {
});
});

describe('primus-emitter', function (){

it('should allow sending to a single room from client', function(done){
this.timeout(0);
var srv = http();
var primus = server(srv, opts);
var count = 0;
primus.use('emitter', 'primus-emitter');

srv.listen(function(){

var c1 = client(srv, primus);
var c2 = client(srv, primus);

primus.on('connection', function(spark){
spark.on('join', function (room) {
spark.join(room, function () {
if (1 === count++) {
spark.room('room1').send('news');
}
});
});
});

c1.on('news', function (data) {
finish();
});

c2.on('news', function (data) {
finish(new Error('not'));
});

function finish (data) {
srv.close();
done(data);
}

c1.send('join','room1');
c2.send('join','room2');

});
});

it('should allow sending to a single room from server', function(done){
this.timeout(0);
var srv = http();
var primus = server(srv, opts);
var count = 0;
primus.use('emitter', 'primus-emitter');

srv.listen(function(){

var c1 = client(srv, primus);
var c2 = client(srv, primus);

primus.on('connection', function(spark){
spark.on('join', function (room) {
spark.join(room, function () {
if (1 === count++) {
primus.room('room1').send('news');
}
});
});
});

c1.on('news', function (data) {
finish();
});

c2.on('news', function (data) {
finish(new Error('not'));
});

function finish (data) {
srv.close();
done(data);
}

c1.send('join','room1');
c2.send('join','room2');

});
});

it('should allow sending to multiple rooms from client', function(done){
this.timeout(0);
var srv = http();
var primus = server(srv, opts);
var total = 2;
var count = 0;
primus.use('emitter', 'primus-emitter');

srv.listen(function(){

var c1 = client(srv, primus);
var c2 = client(srv, primus);
var c3 = client(srv, primus);
var c4 = client(srv, primus);

primus.on('connection', function(spark){
spark.on('join', function (room) {
spark.join(room, function () {
if (3 === count++) {
spark.room('room1 room2 room3').send('news');
}
});
});
});

c1.on('news', function (data) {
--total || finish();
});

c2.on('news', function (data) {
--total || finish();
});

c3.on('news', function (data) {
--total || finish();
});

c4.on('news', function (data) {
finish(new Error('not'));
});

function finish (data) {
srv.close();
done(data);
}

c1.send('join','room1');
c2.send('join','room2');
c3.send('join','room3');
c4.send('join','room4');

});
});

it('should allow sending to multiple rooms from server', function(done){
this.timeout(0);
var srv = http();
var primus = server(srv, opts);
var total = 2;
var count = 0;
primus.use('emitter', 'primus-emitter');

srv.listen(function(){

var c1 = client(srv, primus);
var c2 = client(srv, primus);
var c3 = client(srv, primus);
var c4 = client(srv, primus);

primus.on('connection', function(spark){
spark.on('join', function (room) {
spark.join(room, function () {
if (3 === count++) {
primus.room('room1 room2 room3').send('news');
}
});
});
});

c1.on('news', function (data) {
--total || finish();
});

c2.on('news', function (data) {
--total || finish();
});

c3.on('news', function (data) {
--total || finish();
});

c4.on('news', function (data) {
finish(new Error('not'));
});

function finish (data) {
srv.close();
done(data);
}

c1.send('join','room1');
c2.send('join','room2');
c3.send('join','room3');
c4.send('join','room4');

});
});
});
});

0 comments on commit ed541ff

Please sign in to comment.