Nock "нет совпадений для запроса" с регулярным выражением - PullRequest
0 голосов
/ 26 апреля 2020

У меня проблема с макетом HTTP-запроса из моего Node.js кода с использованием nock.
Для выполнения запроса я использую библиотеку ax ios:

axios.get(`https://api.spoonacular.com/recipes/${id}/information?apiKey=${process.env.MY_SPOONACULAR_KEY}`);

id это просто целое число, подобное 1131030.

Я использую nock следующим образом:

nock('https://api.spoonacular.com')
    .persist()
    .log(console.log)
    .get('/recipes\/\d*\/information$/')
    .query(true)
    .reply(200, {answer: 'any'});

Я использую query (true) чтобы соответствовать любой строке запроса. Регулярное выражение в get соответствует любому возможному идентификатору в запросе.

Однако это не работает, и из журнала nock я получаю следующее:

соответствие https://api.spoonacular.com: 443 / рецепты / 1131030 / информация GET https://api.spoonacular.com: 443 / рецепты / d * / информация $ /: false

1 Ответ

0 голосов
/ 26 апреля 2020

Вы передаете строку, а не регулярное выражение, методу .get(). Вам необходимо удалить кавычки.

.get(/recipes\/\d*\/information$/)

Кроме того, использование .log() не является предпочтительным при попытке выяснить, почему Nock не соответствует. Вместо этого используйте DEBUG, чтобы получить больше информации. https://github.com/nock/nock#debugging

...