Я хотел бы иметь возможность видеть каждый запрос, перехваченный перехватчиком, и видеть, ответил ли он или находится в ожидании. Я использую scope.persist(true)
для каждого перехватчика. Как это может быть сделано?
Nock - как логировать статус каждого запроса?
Ответы (1)
Scope
s генерируют события, когда Interceptor
соответствует запросу и когда этот Interceptor
отвечает полезной нагрузкой. https://github.com/nock/nock#events
Обратный вызов для каждого из этих событий передается Interceptor
в качестве аргумента.
Я не совсем уверен, что такое вопрос «посмотрите, ответил ли он или находится в ожидании», но что-то вроде этого должно вас заинтересовать:
const scope = nock('http://example.test')
.get('/')
.reply(200)
scope.on('request', (req, interceptor) => {
console.log('interceptor matched request', interceptor.uri)
});
scope.on('replied', (req, interceptor) => {
console.log('response replied with nocked payload', interceptor.uri)
});
person
Matt R. Wilson
schedule
25.09.2019
Когда я реализую приведенное выше предложение, я получаю
TypeError: scope.on is not a function
, если я не укажу его сразу после scope = nock(baseUrl);
, т.е. если я сделаю scope.persist();scope.delay(delay);
до scope.on(...);
, то я увижу вышеуказанную ошибку.
- person JoeTidee; 26.09.2019
Странный.
delay
стоит на перехватчике, а не на прицеле. Так что я бы ожидал ошибки там. github.com/nock/nock#delay-the-response
- person Matt R. Wilson; 26.09.2019