Para quem se deparar com isso, o problema estava vindo de
db.js
, especificamente a última linha: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]);
Claro que isso é assíncrono, e os testes estavam importando esse arquivo antes de tentar rodar suas próprias funções knex, causando o travamento. Eu contornei isso adicionando uma cláusula para bloquear essa execução durante o teste:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
Você pode então criar um ambiente de teste adicionando
process.env.NODE_ENV='test'
para cada arquivo de especificação ou instalando o npm env test
módulo.