• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

279
Vistas
How to pass form-data in Loopback code in Mocha Unit Testing NodeJs

I am trying Unit Testing Using Loopback Mocha. I have a POST API /admin/url/createShortUrl which requires actualUrl as a formdata. Also some headers. But headers seems working fine. I tried multiple answers from stackoverflow but none worked. I am trying to set Content-type as application/json as well as multipart/form-data. But none of it is working.

require('dotenv').config();
import {Client, expect} from '@loopback/testlab';
import {BrickAdminPanelApplication} from '../../application';
import upload from 'multer';

import {setupApplication} from './test-helper';

admin-panel.datasource'; const token = 'eyJ0eXAiOiJKV1QiLCJhbGci';

describe('ShortenedUrlController', () => {
    let app: BrickAdminPanelApplication;
    let client: Client;

    before('setupApplication', async () => {
        ({app, client} = await setupApplication());
    });

    after(async () => {
        await app.stop();
    });

    it('invokes POST /admin/url/createShortUrl', async () => {
        await client
        .post('/admin/url/createShortUrl')
        .set({Authorization: `Bearer ${token}`})
        .set('emailId', 'myemail@gmail.com')

        .set('Content-Type', 'multipart/form-data') //Not working
        .set('Content-Type', 'application/json') //Not working
        .field('Content-Type', 'multipart/form-data') //Not working
        .field(
            'actualUrl',
            'https%3A%2F%2Fadminss.papers.com%2Fddqwderss1ssdadsdassatsddqposissdcsuy',
        )
        .expect(400);
    });
});

ERROR

 1) ShortenedUrlController
   invokes POST /admin/url/createShortUrl:
 Error: expected 400 "Bad Request", got 415 "Unsupported Media Type"
  at Context.<anonymous> (src\__tests__\acceptance\url-shortener.acceptance.ts:92:8)
  at processImmediate (node:internal/timers:466:21)
  at process.callbackTrampoline (node:internal/async_hooks:130:17)
  at Test._assertStatus (node_modules\supertest\lib\test.js:304:12)
  at C:\project test\MT-PampersBrick-Admin-API\node_modules\supertest\lib\test.js:80:15
  at Test._assertFunction (node_modules\supertest\lib\test.js:338:11)
  at Test.assert (node_modules\supertest\lib\test.js:209:21)
  at localAssert (node_modules\supertest\lib\test.js:167:12)
  at fn (node_modules\supertest\lib\test.js:164:5)
  at Test.callback (node_modules\superagent\src\node\index.js:902:3)
  at fn (node_modules\superagent\src\node\index.js:1130:18)
  at IncomingMessage.<anonymous> (node_modules\superagent\src\node\parsers\json.js:19:7)
  at IncomingMessage.emit (node:events:539:35)
  at endReadableNT (node:internal/streams/readable:1345:12)
  at processTicksAndRejections (node:internal/process/task_queues:83:21)
about 3 years ago · Juan Pablo Isaza
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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda