Полное раскрытие информации, это школьный проект, но учителя не хотят помогать, и мы зашли в тупик.
Мы написали приложение nodejs с базовым c паспортным jwt auth, которое использует объект access_token
в заголовке и мы перешли к этапам тестирования. У меня есть почтовый запрос, над которым я высмеял супертест и мокко. Мы используем mon go -unit для инициализации базы данных в памяти, которая содержит пользователя с идентификатором, присутствующим в токене. вот так:
it('POST en mijn target geldige informatie bevat', (done) => {
request(app)
.post('/targets')
.set({
access_token: fakeAccessToken
})
.send({
title: "geldig target",
description : "lorem ipsum dolar sit amet",
region_id : "NB",
userId: "f7086ab6f4bfdbb66ca273216",
difficulty : 1,
image: "test.png",
created_at: Date.parse("2020-01-01"),
})
.expect(200)
.then(() => {
daoUT.Target.find({ title: 'geldig target'}, (err, target) => {
expect(target).to.exist;
done();
})
}).catch((err) => done(err));
Однако всегда кажется, что возвращается неавторизованная ошибка 401. Мы попробовали несколько пакетов имитации паспортов, таких как passport-mock-strategy
, но не поняли их полностью, потому что модульное тестирование с паспортом и node.js относительно новы для нас.
Тест регистрации в понедельник go -unit db проходит нормально:
it('met email en wachtwoord', (done) => {
request(app)
.post("/auth/signup")
.expect(200)
.send({
email: 'fake@email.com',
password: 'fakepass123'
})
.then((res) => {
// expect(res).to.be.json;
expect(res.body).to.include.keys("access_token");
expect(daoUT.User.find({email: 'fake@email.
done();
}).catch((err) => done(err));
});
Если mon go -unit проходит тест и находит пользователя, определенного в тестовой базе данных (с проверенным идентификатором), как приходит ли что тест, который загружает цель, терпит неудачу?