För alla som stöter på detta kom problemet faktiskt från db.js
, särskilt den sista raden:
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]);
Naturligtvis är detta asynkront, och testerna importerade den här filen innan de försökte köra sina egna knex-funktioner, vilket orsakade låsningen. Jag kom runt detta genom att lägga till en klausul för att blockera att detta körs under testning:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
Du kan sedan skapa en testmiljö genom att lägga till process.env.NODE_ENV='test'
till varje spec-fil, eller genom att installera npm env-testet
modul.