Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
Fastify inject test con tiempo de espera de broma al enviar texto/cuerpo sin formato

Tengo el siguiente servidor Fastify básico:

 import Fastify from 'fastify'; import expressPlugin from 'fastify-express'; import cors from 'cors'; async function build() { const fastify = Fastify(); await fastify.register(expressPlugin); fastify.use(cors()); fastify.post( '/someurl', async (request, reply) => { console.log('PATATAPATATA'); void reply.send({message: "Hey, I'm stuck :D"}) } ); return fastify; }

Y luego tengo la siguiente prueba:

 it.only('Should reply with a 200 status code when sending a string body', async () => { // after this line, jest gives a timeout (5000 ms) const response = await getResponse({ headers: { Accept: 'application/json', 'Content-Type': 'text/plain', 'Content-Length': 1, }, payload: 'a', }); expect(response.statusCode).toEqual(200); }); async function getResponse(options?: InjectOptions) { const app = await build(); return app.inject({ method: 'POST', url: `/someurl`, ...options, }); }

El encabezado de longitud de contenido no debería ser necesario, pero lo agregué después de probar diferentes cosas para solucionarlo. Si lo elimina, obtiene el tiempo de espera de todos modos. ¿Alguna idea de por qué sucede esto? Si elimino el encabezado de tipo de contenido, obtengo un error de http 415.

Nota al margen: el código console.log('PATATAPATATA'); nunca se ejecuta, por lo que el problema tiene que estar en algunos componentes internos de fastify o en el módulo light my request.

Actualizar Parece que esto solo sucede cuando uso la payload en las opciones de inject , así:

 async function getResponse(options?: InjectOptions) { const app = await build(); return app.inject({ method: 'POST', url: `/someurl`, payload: {}, }); }

También he descubierto que:

  • Usando payload: '' funciona.
  • El uso payload: '{}' no funciona. No da un tiempo de espera, pero tampoco ejecuta el método de post .
  • El uso payload: '{}' y content-type establecido en application/json o text/plain , también proporciona el tiempo de espera.
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece fastify-express no es compatible con inject -> https://github.com/fastify/fastify/issues/3739

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda