Я пишу несколько тестов с Чай и Мокко, и у меня есть некоторые проблемы. Например, в маршруте, который я здесь вставляю, LOGOUT вызывает промежуточное ПО isLoggedIn, которое проверяет, существует ли пользователь в сеансе. Например, если сделать это:
it('Logout', function(done) {
chai.request(baseURL)
.post('/logout')
.end(function(err, res) {
expect(err).to.be.null;
expect(res).to.have.status(204);
done();
});
});
, тест не пройдёт, потому что я получу код состояния 401. Я новичок в этом тесте. Я понимаю, что мне нужно использовать Sinon, чтобы пройти мой тест, но я не могу найти решение.
Это мой маршрут:
'use strict';
const express = require('express');
const createError = require('http-errors');
const router = express.Router();
const bcrypt = require('bcrypt');
const User = require('../models/User');
const {isLoggedIn} = require('../helpers/middlewares');
router.post('/logout', isLoggedIn(), (req, res, next) => {
req.session.destroy();
return res.status(204).send();
});
Это промежуточное ПО:
'use strict';
const createError = require('http-errors');
exports.isLoggedIn = () => (req, res, next) => {
if (req.session.user) {
next();
} else {
next(createError(401));
};
};
Большое спасибо !!!