97 lines
2.3 KiB
JavaScript
97 lines
2.3 KiB
JavaScript
|
var fixture = require('./fixture'),
|
||
|
request = require('request'),
|
||
|
setSocketIOHandshakeCookies = require('./fixture/setSocketIOHandshakeCookies');
|
||
|
|
||
|
var io = require('socket.io-client');
|
||
|
|
||
|
describe('authorizer with success callback', function () {
|
||
|
|
||
|
//stop the server
|
||
|
afterEach(fixture.stop);
|
||
|
|
||
|
//start the server
|
||
|
//create a new session for every test
|
||
|
beforeEach(function(done){
|
||
|
this.cookies = request.jar();
|
||
|
setSocketIOHandshakeCookies(this.cookies);
|
||
|
|
||
|
fixture.start({
|
||
|
success: function(data, accept){
|
||
|
this.accept = accept;
|
||
|
}.bind(this)
|
||
|
}, done);
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should call the success function with accept', function (done){
|
||
|
request.post({
|
||
|
jar: this.cookies,
|
||
|
url: 'http://localhost:9000/login',
|
||
|
form: {username: 'jose', password: 'Pa123'}
|
||
|
}, function(){
|
||
|
|
||
|
io.connect('http://localhost:9000', {'force new connection':true});
|
||
|
setTimeout(function(){
|
||
|
|
||
|
this.accept
|
||
|
.should.be.instanceOf(Function);
|
||
|
|
||
|
done();
|
||
|
|
||
|
}.bind(this), 300);
|
||
|
|
||
|
}.bind(this));
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should not connect until calling the accept function', function (done){
|
||
|
request.post({
|
||
|
jar: this.cookies,
|
||
|
url: 'http://localhost:9000/login',
|
||
|
form: {username: 'jose', password: 'Pa123'}
|
||
|
}, function(){
|
||
|
|
||
|
var connected = false,
|
||
|
socket = io.connect('http://localhost:9000', {'force new connection':true});
|
||
|
|
||
|
socket.on('connect', function(){
|
||
|
connected = true;
|
||
|
}).on('error', done);
|
||
|
|
||
|
setTimeout(function(){
|
||
|
connected.should.be.false;
|
||
|
done();
|
||
|
}.bind(this), 300);
|
||
|
|
||
|
}.bind(this));
|
||
|
});
|
||
|
|
||
|
it('should connect after calling the accept function', function (done){
|
||
|
request.post({
|
||
|
jar: this.cookies,
|
||
|
url: 'http://localhost:9000/login',
|
||
|
form: {username: 'jose', password: 'Pa123'}
|
||
|
}, function(){
|
||
|
|
||
|
var connected = false,
|
||
|
socket = io.connect('http://localhost:9000', {'force new connection':true});
|
||
|
|
||
|
socket.on('connect', function(){
|
||
|
connected = true;
|
||
|
}).on('error', done);
|
||
|
|
||
|
|
||
|
setTimeout(function(){
|
||
|
this.accept(null, true);
|
||
|
|
||
|
setTimeout(function(){
|
||
|
connected.should.be.true;
|
||
|
done();
|
||
|
}, 200);
|
||
|
|
||
|
}.bind(this), 200);
|
||
|
|
||
|
}.bind(this));
|
||
|
});
|
||
|
});
|