0

I am trying to mock third part API which is called from my API which doesnt seem to be working.

    describe('Smartvehicle API test', function() {
      it('should return vehicle info', function(done) {
       nock("http://some.api.com")
        .post('/test', '{"id":"1234","responseType":"JSON"}')          
        .reply(200, {
          "status": 200,
          "message": "This is a mocked response"
       });
       request(url)
       .get('/vehicles/1234')
       .end(function(err, res) {
         console.log(res.text);
        res.status.should.be.equal(200);
        res.body.vin.should.be.equal("22");          
        done();
     });      
  })
});

The some.api.com is called from the controller.

router.get('/vehicles/:id', function(req, res, next) {
  // Create an instance of our factory that makes vehicles
  var vehicle = vehicleFactory.getVehicle(req.params.id);
  var input = vehicle.vehicleInfo.parseInput(req.params.id);
  requestApi(input, vehicle.vehicleInfo.url, function(err, response) {
    if (err) { 
      next(err);
    } else { 
      res.json(vehicle.vehicleInfo.parseOutput(response));   
    } 
  });
});
harshit
  • 7,925
  • 23
  • 70
  • 97

0 Answers0