Estoy tratando de probar una API Express con Mocha y Chai. Mi estructura es la siguiente: server.js
const express = require('express'); ... const loadCredentials = () => ({ ... }) const application = () => { console.log('This is a log i should always see'); const app = express(); app.use('/api', authentication, authorization('@data/accounts'), router); ... return app; }; if (require.main === module) { application.listen(443) ... } module.exports = { application };prueba.js
const { application } = require('../server/src/server'); describe('Some async test', async () => { it(, async () => { console.log('I should really see this log!!'); server = application(); const res = await chai.request(server).get('/api'); ...test stuff... } } Cuando lerna run test (que ejecuta mocha ./test.js --timeout 60000 ), la prueba nunca se ejecuta.
lerna notice cli v3.10.7 lerna info Executing command in 1 package: "yarn run test" Sin embargo, si desactivo la llamada a la application , la prueba comienza (y falla porque server no está definido). También intenté refactorizar application y pasar un parámetro express() a la application(app) de la prueba, y obtuve el mismo comportamiento.
La prueba se ejecuta si la ejecuto desde WebStorm como una prueba individual. No hace falta decir que el servidor funciona cuando lo yarn run . Cualquier ayuda sería apreciada.