Я тестирую свои экспресс-конечные точки и любой тестовый файл после первого тайм-аута.Они истекают при попытке выполнить операцию с базой данных.
Я экспортирую свой объект сервера (в index.js), и в этом файле есть сценарии запуска, которые устанавливают промежуточное программное обеспечение, маршруты, соединение с базой данных и т. Д. Я пытался перехватить ошибки в любом коде, который работает набаза данных, но ничего не отображается.Я просто знаю, что время доступа к базе данных истекло.Возможно, я неправильно закрываю его или есть какое-то состояние гонки.
const { Student } = require('../../../models/student');
const mocksdk = require('../../firebaseMock');
const { expect } = require('chai');
const request = require('supertest');
const mongoose = require('mongoose');
describe('authStudent Middleware', () => {
let token;
let server;
before(async () => {
server = require('../../../index');
// Create a firebase user and get the token
mocksdk.auth().autoFlush();
mocksdk.auth().createUser({
uid: '123',
email: 'test@mail.com',
password: 'test'
});
// Assign student role to user
mocksdk.auth().setCustomUserClaims({ role: 0 });
const user = await mocksdk.auth().getUser('123');
token = await user.getIdToken();
});
after(async () => {
await Student.deleteMany({});
await mongoose.disconnect();
await server.close();
});
it('should return 200 if the token is valid', async () => {
const res = await request(server)
.get('/students/me')
.set('Authorization', 'Bearer ' + token);
expect(res.status).to.be.equal(200);
});
});
Время ожидания в ловушке после, при удалении из базы данных и в конечной точке студентов / меня при получении информации о пользователе.
Редактировать: я пытался увеличить время ожидания, но это не работает.