0

I'm using mocha as a test framework, and chakram for API calls.

I have an array of objects, I want to loop over them and POST each one to an API, how can I do this? What I've tried so far doesn't give any output from the each iteration.

This is what I've come up with so far, using it-each to loop over an array, then chakram to post each one. I'm not quite sure how to tie in the chakram promise chain with the it-each

  const itEach = require('it-each')({ testPerIteration: true });

  const url = ""
  things = [{"title":"A"},{"title":"B"}]

  it.each(things, "calling API", ['element'], (element, next) =>{
      console.log("about to post a thing " + JSON.stringify(element))
      chakram
          .post(url, element)
          .then(uploadResponse => {
              expect(uploadResponse).to.have.status(200)
              console.log("finished upload for element " + element)
              next()
           })
  })

What have I got wrong? JS isn't my language, I'm not very good with promise chains.

Jimmy
  • 16,123
  • 39
  • 133
  • 213

1 Answers1

0

trigger all your request and then use chakram.waitfor property to get all your responses.

it("get all responses",function() {
response1=chakram.put(url,param,options)
response2=chakram.put(url,param,options)
response3=chakram.put(url,param,options)
response4=chakram.put(url,param,options)

 return chakram.waitFor([
                expect(response1).to.have.json(function (json) {
})
 expect(response2).to.have.json(function (json) {})
 expect(response3).to.have.json(function (json) {})
 expect(response4).to.have.json(function (json) {})
])
});
Ritdhwaj
  • 16
  • 1