web-dev-qa-db-fra.com

Comment envoyer des paramètres de chaîne de requête à l'aide de supertest?

J'utilise supertest pour envoyer des paramètres de chaîne de requête get, comment faire?

J'ai essayé

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();
  });

mais cela n'a pas envoyé les paramètres username, password, client_id comme chaîne de requête au point de terminaison. Existe-t-il un moyen d'envoyer des paramètres de chaîne de requête à l'aide de supertest?

16
J K

Bien que supertest ne soit pas très bien documenté, vous pouvez jeter un œil à la tests/supertest.js .

Là, vous avez un suite de tests uniquement pour les chaînes de requête.

Quelque chose comme:

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

Donc:

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

devrait marcher.

50
Robert T.