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

494
Visualizações
Pruebe la carga de múltiples archivos con jest nodejs

Estoy creando una aplicación con NodeJs donde se cargarán varios archivos. A continuación se muestra mi caso de prueba y recibo este error Argument of type 'string[]' is not assignable to parameter of type 'MultipartValueSingle'.

Este es el caso de prueba

 it('Create feed (POST)', () => { const video = path.resolve(__dirname, `../test-files/movie_video.mp4`); const image = path.resolve(__dirname, `../test-files/thumbnail.jpg`); const pdfDoc = path.resolve(__dirname, `../test-files/pdf_doc.pdf`); const multipleFiles : string[] = [video, image, pdfDoc] return request(app.getHttpServer()) .post('/feed') .set('content-type', 'application/octet-stream') .set('Authorization', 'Bearer ' + accessToken) .field('text', 'Aenean imperdiet. Nam ipsum risus,. Curabitur suscipit suscipit tellus.') .field('payment_amount', 0) .attach('postDocs', multipleFiles) .expect(function (res) { if (!('message' in res.body) || !('payload' in res.body)) { throw new Error('Response should contain message and payload.'); } else if (res.body.message !== StatusMessages.Default) { throw new Error('User not logged in'); } if (!('user' in res.body.payload)) { throw new Error('Payload should contain user.'); } adminAccessToken = res.body.payload.access_token; }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El mensaje de error es obvio, debe adjuntar varios archivos llamando a .attach() varias veces.

P.ej

index.ts :

 import express from 'express'; import multer from 'multer'; const app = express(); const upload = multer(); const cpUpload = upload.fields([{ name: 'video' }, { name: 'image' }, { name: 'pdfDoc' }]); app.post('/feed', cpUpload, (req, res) => { console.log(req.files); console.log(req.body); res.sendStatus(200); }); export { app };

index.test.ts :

 import path from 'path'; import request from 'supertest'; import { app } from '.'; describe('69663276', () => { it('Create feed (POST)', () => { const video = path.resolve(__dirname, `./movie_video.mp4`); const image = path.resolve(__dirname, `./thumbnail.jpg`); const pdfDoc = path.resolve(__dirname, `./pdf_doc.pdf`); const accessToken = '123'; return request(app) .post('/feed') .set('content-type', 'application/octet-stream') .set('Authorization', 'Bearer ' + accessToken) .field('text', 'Aenean imperdiet. Nam ipsum risus,. Curabitur suscipit suscipit tellus.') .field('payment_amount', 0) .attach('video', video) .attach('image', image) .attach('pdfDoc', pdfDoc) .expect(200); }); });

resultado de la prueba:

 PASS examples/69663276/index.test.ts (11.544 s) 69663276 ✓ Create feed (POST) (71 ms) console.log [Object: null prototype] { video: [ { fieldname: 'video', originalname: 'movie_video.mp4', encoding: '7bit', mimetype: 'video/mp4', buffer: <Buffer >, size: 0 } ], image: [ { fieldname: 'image', originalname: 'thumbnail.jpg', encoding: '7bit', mimetype: 'image/jpeg', buffer: <Buffer >, size: 0 } ], pdfDoc: [ { fieldname: 'pdfDoc', originalname: 'pdf_doc.pdf', encoding: '7bit', mimetype: 'application/pdf', buffer: <Buffer >, size: 0 } ] } at examples/69663276/index.ts:9:11 console.log [Object: null prototype] { text: 'Aenean imperdiet. Nam ipsum risus,. Curabitur suscipit suscipit tellus.', payment_amount: '0' } at examples/69663276/index.ts:10:11 Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 12.795 s
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