• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

262
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error