From 2d390e66e6d19579a09ff827c96f404b69bf1c77 Mon Sep 17 00:00:00 2001 From: Mathew Woods Date: Thu, 20 Oct 2016 10:38:43 -0500 Subject: [PATCH] going to be adding new options but want it within the same general authorizer test suite - DK/MW --- test/authorizer.test.js | 149 ++++++++++++++++++++-------------------- 1 file changed, 76 insertions(+), 73 deletions(-) diff --git a/test/authorizer.test.js b/test/authorizer.test.js index b619ecb..3c108e8 100644 --- a/test/authorizer.test.js +++ b/test/authorizer.test.js @@ -2,86 +2,89 @@ var fixture = require('./fixture'); var request = require('request'); var io = require('socket.io-client'); -describe('authorizer', function () { +describe('authorizer', () => { - //start and stop the server - before(done => { - fixture.start({ }, done) - }); - after(fixture.stop); + describe('authorizer all auth types allowed', () => { - describe('when the user is not logged in', function () { + //start and stop the server + before(done => { + fixture.start({ }, done) + }); + after(fixture.stop); - it('should emit error with unauthorized handshake', function (done){ - var socket = io.connect('http://localhost:9000?token=boooooo', { - 'forceNew': true + describe('when the user is not logged in', function () { + + it('should emit error with unauthorized handshake', function (done){ + var socket = io.connect('http://localhost:9000?token=boooooo', { + 'forceNew': true + }); + + socket.on('error', function(err){ + err.message.should.eql("jwt malformed"); + err.code.should.eql("invalid_token"); + socket.close(); + done(); + }); }); - socket.on('error', function(err){ - err.message.should.eql("jwt malformed"); - err.code.should.eql("invalid_token"); - socket.close(); - done(); + }); + + describe('when the user is logged in', function() { + + before(function (done) { + request.post({ + url: 'http://localhost:9000/login', + form: { username: 'jose', password: 'Pa123' }, + json: true + }, function (err, resp, body) { + this.token = body.token; + done(); + }.bind(this)); + }); + + it('auth headers are supported', function (done){ + var socket = io.connect('http://localhost:9000', { + 'forceNew':true, + 'extraHeaders': {'Authorization': `Bearer ${this.token}`} + }); + socket.on('connect', function(){ + socket.close(); + done(); + }).on('error', done); + }); + + it('should do the handshake and connect', function (done){ + var socket = io.connect('http://localhost:9000', { + 'forceNew':true, + 'query': 'token=' + this.token + }); + socket.on('connect', function(){ + socket.close(); + done(); + }).on('error', done); + }); + }); + + describe('unsgined token', function() { + beforeEach(function () { + this.token = 'eyJhbGciOiJub25lIiwiY3R5IjoiSldUIn0.eyJuYW1lIjoiSm9obiBGb28ifQ.'; + }); + + it('should not do the handshake and connect', function (done){ + var socket = io.connect('http://localhost:9000', { + 'forceNew':true, + 'query': 'token=' + this.token + }); + socket.on('connect', function () { + socket.close(); + done(new Error('this shouldnt happen')); + }).on('error', function (err) { + socket.close(); + err.message.should.eql("jwt signature is required"); + done(); + }); }); }); }); - - describe('when the user is logged in', function() { - - before(function (done) { - request.post({ - url: 'http://localhost:9000/login', - form: { username: 'jose', password: 'Pa123' }, - json: true - }, function (err, resp, body) { - this.token = body.token; - done(); - }.bind(this)); - }); - - it('auth headers are supported', function (done){ - var socket = io.connect('http://localhost:9000', { - 'forceNew':true, - 'extraHeaders': {'Authorization': `Bearer ${this.token}`} - }); - socket.on('connect', function(){ - socket.close(); - done(); - }).on('error', done); - }); - - it('should do the handshake and connect', function (done){ - var socket = io.connect('http://localhost:9000', { - 'forceNew':true, - 'query': 'token=' + this.token - }); - socket.on('connect', function(){ - socket.close(); - done(); - }).on('error', done); - }); - }); - - describe('unsgined token', function() { - beforeEach(function () { - this.token = 'eyJhbGciOiJub25lIiwiY3R5IjoiSldUIn0.eyJuYW1lIjoiSm9obiBGb28ifQ.'; - }); - - it('should not do the handshake and connect', function (done){ - var socket = io.connect('http://localhost:9000', { - 'forceNew':true, - 'query': 'token=' + this.token - }); - socket.on('connect', function () { - socket.close(); - done(new Error('this shouldnt happen')); - }).on('error', function (err) { - socket.close(); - err.message.should.eql("jwt signature is required"); - done(); - }); - }); - }); - });