401 unauthorized in mocha / supertest request with mongounit - PullRequest
0 голосов
/ 17 июня 2020

Полное раскрытие информации, это школьный проект, но учителя не хотят помогать, и мы зашли в тупик.

Мы написали приложение 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 проходит тест и находит пользователя, определенного в тестовой базе данных (с проверенным идентификатором), как приходит ли что тест, который загружает цель, терпит неудачу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...