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

228
Visualizações
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 Respostas
Responde à pergunta

0

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

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