【发布时间】:2015-09-01 20:12:12
【问题描述】:
我有一个使用 Passport 进行身份验证的 MEAN 堆栈应用程序。
我正在尝试编写一个登录单元测试并检查您是否被重定向到根目录 (/)。但是,每当我运行 Mocha 时,都会收到以下错误消息:
1) POST /home Login test should redirect to / after login:
Error: the string "Not a valid BCrypt hash." was thrown, throw an Error :)
这是我的单元测试LoginSpec.js:
var should = require("should");
var app = require("../app");
var mongoose = require("mongoose");
var User = mongoose.model("User");
var request = require("supertest");
var agent = request.agent(app);
...
describe('POST /home', function() {
before(function(done) {
user = new User({
email: "john@email.com",
firstName: "John",
lastName: "Doe",
password: "strongPassword",
username: "johndoe"
});
user.save(done);
})
describe('Login test', function() {
it ('should redirect to / after login', function(done) {
agent.post('/login')
.send({
username: 'johndoe',
password: 'strongPassword'
})
.end(function(err, res) {
done();
})
})
after(function(done) {
User.remove().exec();
return done();
})
})
})
我需要 BCrype 我的密码吗?如果是这样,我该怎么做?
另外,我看到的一些在线登录示例为什么不这样做?如NodeJS/Passport - Testing user login with mocha and superagent和How to authenticate Supertest requests with Passport?
【问题讨论】:
标签: node.js express mocha.js passport.js supertest