Como superagentes e nock trabalham juntos?

No node.js, tenho dificuldade em fazer o superagent e o nock funcionarem juntos. Se eu usar o pedido em vez de superagente, funciona perfeitamente.

Aqui está um exemplo simples em que o superagente não informa os dados ridicularizados:

var agent = require('superagent');
var nock = require('nock');

nock('http://thefabric.com')
  .get('/testapi.html')
  .reply(200, {yes: 'it works !'});

agent
  .get('http://thefabric.com/testapi.html')
  .end(function(res){
    console.log(res.text);
  });

o objeto res não tem propriedade 'text'. Algo deu errado.

Agora, se eu fizer a mesma coisa usando o pedido:

var request = require('request');
var nock = require('nock');

nock('http://thefabric.com')
  .get('/testapi.html')
  .reply(200, {yes: 'it works !'});

request('http://thefabric.com/testapi.html', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body)
  }
})

O conteúdo ridicularizado é exibido corretamente.

Usamos superagente nos testes, então eu prefiro ficar com ele. Alguém sabe como fazer isso funcionar?

Muito obrigado, Xavier

questionAnswers(1)

yourAnswerToTheQuestion