Используя Mocha / Chai для модульного тестирования REST API, мне нужно иметь возможность смоделировать req.session.someKey
для нескольких конечных точек. Как я могу заниматься насмешкой req.session
?
Я работаю над написанием модульных тестов API REST для приложения NodeJS Express, в котором используется экспресс-сессия. Некоторые из этих конечных точек требуют использования данных, хранящихся в req.session.someKey
, конечная точка настроена на возврат 400, если req.session.someKey
не определено, поэтому мне нужно иметь возможность смоделировать ее для успешного завершения теста.
Пример кода:
router.get('/api/fileSystems', utilities.apiAuth, (req, res) => {
let customer = req.session.customer;
let route = (customer === 'NONE') ? undefined : customer;
if(route == undefined){
res.status(400).send('Can't have customer of undefined');
} else {
let requestOptions = setRequestOptions(route);
queryFileSystemInfo(requestOptions, (info) => {
res.status(200).send(info);
});
}
});
Что я пробовал:
describe('/GET /api/fileSystems', () => {
it('It should return information about the filesystem for a customer'), (done) => {
chai.request(server)
.get('api/fileSystems')
.set('customer', '146')
.end((err, res) => {
res.should.have.status(200);
done();
});
});
});
Я пытался использовать .set()
для установки req.session, но я считаю, что .set просто устанавливает заголовки, поэтому я не верю, что могу обновить его таким образом, если я что-то упустил.