PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Mocha testando PostgreSQL com Knex está me dando um erro MigrationLocked


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.