У меня есть приложение стека MEAN, которое использует Passport для аутентификации.
Я пытаюсь написать модульный тест, который входит в систему и проверяет, перенаправлены ли вы в корень (/
). Однако всякий раз, когда я запускаю 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: "[email protected]",
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 — Проверка входа пользователя с помощью mocha и superagent и Как аутентифицировать запросы Supertest с помощью Passport?