How to send query string parameters using supertest?

supertest

Solution

Although `supertest` is not that well documented, you can have a look into the `tests/supertest.js`.

There you have a test suite only for the query strings.

Something like:

request(app)
  .get('/')
  .query({ val: 'Test1' })
  .expect(200, function(err, res) {
    res.text.should.be.equal('Test1');
    done();
  });

Therefore:

.query({
  key1: value1,
  ...
  keyN: valueN
})

should work.

Problem

I'm using supertest to send get query string parameters, how can I do that? I tried ``` var imsServer = supertest.agent("https://example.com"); imsServer.get("/") .send({ username: username, password: password, client_id: 'Test1', scope: 'openid,TestID', response_type: 'token', redirect_uri: 'https://example.com/test.jsp' }) .expect(200) .end(function (err, res) { // HTTP status should be 200 expect(res.status).to.be.equal(200); body = res.body; userId = body.userId; accessToken = body.access_token; done(); }); ``` but that didn't send the parameters `username`, `password`, `client_id` as query string to the endpoint. Is there a way to send query string parameters using supertest?

Original source