Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
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 answers
Answer question

0

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

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!