Dla każdego, kto natknie się na to, problem pochodził z db.js
, a konkretnie ostatnia linia:
const config = require('../knexfile.js');
const env = process.env.NODE_ENV || 'development';
const knex = require("knex")(config[env]);
module.exports = knex;
knex.migrate.latest([config]);
Oczywiście jest to asynchroniczne, a testy importowały ten plik przed próbą uruchomienia własnych funkcji knex, powodując blokadę. Obszedłem to, dodając klauzulę, aby zablokować to uruchomienie podczas testowania:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
Następnie możesz utworzyć środowisko testowe, dodając process.env.NODE_ENV='test'
do każdego pliku specyfikacji lub instalując npm env test
moduł.