Nock не перехватывает запрос в моем тесте

В начале моего тестового файла я настроил свои ноки, один из них:

test.before(async () => {
  const baseNock = nock('https://api.stripe.com');
  const productNock = (productId) => {
    return baseNock
      .get(`/v1/products/${productId}`)
      .reply('200', getTestStripeProduct(productId));
  };

Затем в моем тесте, когда я попадаю в свою внутреннюю конечную точку API, которая вызывает api.stripe.com/v1/products/{id}, она должна попасть в мой productNock. Однако я не получаю значение getTestStripeProduct(productId). Я записываю значение внутри этой функции до того, как объект вернется.

Что мне здесь не хватает? Спасибо

Редактировать:

Я попытался переместить объявление baseNock и productNock в свой тест, но безуспешно.


person Zack Shapiro    schedule 08.05.2019    source источник


Ответы (1)


Проблема заключалась в размещении этого в функции const productNock = (productId) => {

Просто наличие этого с заглушенным productId в моей функции test.before заставило его работать.

baseNock
  .get(`/v1/products/product_123456`)
  .reply('200', getTestStripeProduct(productId));

Я надеюсь, что это поможет кому-то!

person Zack Shapiro    schedule 08.05.2019