Я использую Nock с Mocha и хочу проверить, существуют ли в запросе определенные заголовки. Меня не интересуют другие заголовки, и меня не волнует конкретное содержимое заголовков, существование которых я проверяю. Есть простой способ сделать это? .matchHeader()
проходит, когда определенный заголовок отсутствует, а reqheaders
терпит неудачу, если я не укажу все поля заголовка.
Nock.js: как проверить наличие заголовка?
Ответы (1)
reqheaders
— правильный подход.
Я не уверен, с какой проблемой вы столкнулись, но не все заголовки нужно указывать. Только те, которые необходимы для матча.
Другая приятная особенность reqheaders
заключается в том, что значение может быть функцией, возвращающей логическое значение. Поскольку вас не волнует фактическое значение заголовков, возврат true
приводит к совпадению, если заголовок просто существует.
const scope = nock('http://www.example.com', {
reqheaders: {
'x-one': () => true,
}
}).get('/').reply(200, 'match!')
const reqOpts = {
hostname: 'www.example.com',
path: '/',
method: 'GET',
headers: {
'X-One': 'hello world',
'X-Two': 'foo bar',
'Content-Type': 'application/json',
}
}
const req = http.request(reqOpts, res => {
console.log("##### res status", res.statusCode)
res.on('data', (chunk) => {
console.log("##### chunk", chunk.toString())
})
})
req.end()
scope.done()
person
Matt R. Wilson
schedule
29.05.2019