супер-сеанс не получает данные сеанса - PullRequest
0 голосов
/ 06 марта 2019

В настоящее время я пытаюсь написать несколько модульных тестов для API, который я строю с использованием node.js и Express.Я использую экспресс-сеанс для создания данных сеанса для пользователей, при успешном входе в систему идентификатор пользователя вставляется в данные сеанса.Таким образом, когда они делают еще один запрос от API, я могу проверить, содержит ли сеанс идентификатор, если он, очевидно, не вошел в систему пользователя, поэтому возвращает 401 status.

Я хочу протестировать свой маршрут выхода из системы:

app.get("/logout",(req,res)=>{
  if(req.session.UserID){
       req.session.destroy((err) => {
         console.error(err)
       })
       res.status(200).send("logged out")
  }else{
    res.status(401).send("not logged in ")
  }
})

Я использую супертест-сессию, следуя тому, что есть на их странице npm для тестирования этого маршрута, вот что у меня до сих пор:

var session = require('supertest-session');
var app = require('../app')

var testSession = null;

beforeEach(function () {
  testSession = session(app);
});


describe("/logout",()=>{
  var authenticatedSession;

    beforeEach(function (done) {
      testSession.post('/login')
        .send({email:"roman@mail.com", password:"secet"})
        .expect(200)
        .end(function (err) {
          if (err) return done(err);
          authenticatedSession = testSession;
          console.log(authenticatedSession.session)
          return done();
        });
    });
    it("Deletes the users session from session storage",(done)=>{
        authenticatedSession.get("/logout")
        .expect(200)
        .expect("logged out",done)
    })
})

Тем не менее, я получаю код ошибки, говорящий, что он ожидал 200, но он получил 401, что означает, что пользователь еще не вошел в систему, я попытался войти authenticatedSession, но он не содержит данных от имени входа вbeforeEach() функция.Я совсем новичок в использовании супертеста (только сегодня) и буду признателен за любую помощь!

...