Я использую среду тестирования mocha, и после запуска следующего теста она не завершается. Я попробовал Promises и Asyn c безуспешно. --exit в конце команды mocha работает, но я хочу найти источник проблемы.
Мне интересно, является ли это соединением с базой данных knex при выполнении функций beforeEach и afterEach. Однако я не знаю, как отключить соединение db, кроме destroy (), и, если это используется, следующие тесты не запускаются.
Может ли кто-нибудь видеть в коде что-то, что может вызывать эту проблему? Или порекомендуете другой способ исправить это?
const app = require('../../app');
const request = require('supertest');
describe('Route: /' + route, () => {
let token = '';
let route = 'user';
before(function (done) {
const user = {email: 'admin@email.com', password: 'password'};
request(app)
.post('/login')
.send(user)
.end((err, res) => {
token = res.body.token;
done();
});
});
beforeEach(async () => {
await knex.migrate.rollback();
await knex.migrate.latest();
await knex.seed.run();
});
afterEach(() => knex.migrate.rollback());
it(`should not be able to consume /${route} since no token was sent`, (done) => {
request(app)
.get(`/${route}`)
.expect(401, done)
});
it(`should be able to consume /${route} since a valid token was sent`, (done) => {
request(app)
.get(`/${route}`)
.set('Authorization', 'Bearer ' + token)
.expect(200, done);
});
});