Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

382
Visualizações
Jest TestEnvironment - TypeError: no se puede agregar la propiedad a continuación, el objeto no es extensible

Quiero probar una API de nodo usando Jest. Estoy probando las rutas y websockets. Probar las rutas no fue un problema. Simplemente inicié el servidor usando la opción setupFile .
Para probar los websockets quería pasar el objeto io a testing. Esto no es posible a través de setupFile ya que las pruebas se ejecutan en su propio contexto. Por lo tanto, cambié a la opción testEnvironment . Mi archivo testEnvironment es el siguiente

 const NodeEnvironment = require('jest-environment-node'); class CustomEnvironment extends NodeEnvironment { constructor(config, context) { super(config, context); this.setupServer(); } async setup() { await super.setup(); console.log('Setup Test Environment.'); this.global.io = this.io; this.global.baseUrl = 'http://localhost:' + this.port; } async teardown() { await super.teardown(); console.log('Teardown Test Environment.'); } getVmContext() { return super.getVmContext(); } setupServer() { // Code for starting the server and attaching the io object this.port = portConfig.http; this.io = io; } } module.exports = CustomEnvironment;

Esto funciona y el objeto io se pasa a prueba. Tengo varios archivos de prueba para diferentes partes de la API. Ejecutar aquellos con setupFile no fue un problema, pero ahora Jest solo puede ejecutar un archivo. Todos los conjuntos de pruebas siguientes están fallando con el siguiente mensaje

 ● Test suite failed to run TypeError: Cannot add property next, object is not extensible at Function.handle (node_modules/express/lib/router/index.js:160:12) at Function.handle (node_modules/express/lib/application.js:174:10) at new app (node_modules/express/lib/express.js:39:9)

No puedo encontrar ninguna documentación sobre ese error. Intenté deshabilitar algunos de los archivos de prueba, pero siempre falla después del primero, sin importar cuál sea.

La estructura de los archivos de prueba es la siguiente, si corresponde:

 const axios = require('axios'); describe('Test MODULE routes', () => { const baseUrl = global.baseUrl; const io = global.io; const models = require('../../../models'); // sequelize models which are used in tests describe('HTTP METHOD + ROUTE', () => { test('ROUTE DESCRIPTION', async () => { const response = await axios({ method: 'get', url: baseUrl + 'ROUTE' }); expect(response.status).toBe(200); }); }); // different routes });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Arreglé el error. No tenía nada que ver con una broma, sino con una invocación de module.exports en la configuración del servidor que sobrescribió la exportación de CustomEnvironment con un servidor express.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda