Saturday, 15 May 2010

javascript - NodeJS/Passport - Testing user login with mocha and superagent -



javascript - NodeJS/Passport - Testing user login with mocha and superagent -

i have built login process basic mean stack , using passport authentication process.

i trying set test create sure login process working. login part here code used:

('login', function(done) { agent.post(config.web.vhost + '/login') .send({ email: 'bruce@wayne.inc', password: 'batman' }) .end(function(err, res) { if (err) console.log('error' + err.message); res.should.have.status(200); done(); }); });

i next error:

no error email: bruce@wayne.inc ․no error errorsocket hang ․double callback!

1 passing (2s) 1 failing 1) user login: uncaught typeerror: cannot read property 'should' of undefined

i know routes , credentials cant figure out whats not working here. first steps user testing not getting right.

here rest of test:

var should = require("should"); var mongoose = require('mongoose'); var request = require('superagent'); var agent = request.agent(); var config = require("../settings/conf"); var dburl = require("../config/database.js"); var user = require('../server/models/user'); var db; describe('user', function() { before(function(done) { db = mongoose.connect(dburl.url); done(); }); after(function(done) { mongoose.connection.close() done(); }); beforeeach(function(done) { var user = new user({ email: 'bruce@wayne.inc', password: 'batman', firstname: 'bruce', lastname: 'wayne' }); user.save(function(err, user) { if (err) console.log('error' + err.message); else console.log('no error'); done(); }); }); it('find user username', function(done) { user.findone({ email: 'bruce@wayne.inc' }, function(err, user) { user.email.should.eql('bruce@wayne.inc'); console.log(" email: ", user.email) done(); }); }); ('login', function(done) { agent.post(config.web.vhost + '/login') .send({ email: 'bruce@wayne.inc', password: 'batman' }) .end(function(err, res) { if (err) console.log('error' + err.message); res.should.have.status(200); done(); }); }); aftereach(function(done) { user.remove({ email: 'bruce@wayne.inc' }, function() { done(); }); }); });

i notice failure you're seeing connect econnrefused -- it's not passport, it's you're not connecting server in agent.post.

i guess either config.web.vhost value isn't set correctly or isn't in right form superagent looking (for instance, superagent may require total absolute url 'http://' on front, , vhost value may hostname).

javascript node.js mocha passport.js superagent

No comments:

Post a Comment