Лучшая практика управления перехватом запросов кукловода

1

Для моих uitests я перехватываю все запросы, а затем отвечаю с посмеянной датой для конкретных конечных точек. У меня есть функция pageMockedRequests, которая будет включать enpoint.

Моя проблема возникает, когда я хочу изменить ответ, в зависимости от того, как я отправляю назад в зависимости от того, сколько раз он был вызван.

    const pageMockedRequests = (request) => {
      switch (request.url()) {
        case ENDPOINTS.A:
          return request.respond(jsonResponseWrapper(returnValidToken(), 200));
        case ENDPOINTS.B:
          if (count === 0) {
            return request.respond(jsonResponseWrapper({RESPONSE FOR 1st CALL}, 200));
          } else if (count === 1) {
            return request.respond(jsonResponseWrapper({RESPONSE FOR 2nd CALL}, 200));
          }
        default:
          return request.abort();
      }
    };

... Таким образом, выше показано, что ENDPOINT.B во второй раз будет отличаться для первого ответа. Im теперь меняет его на count.

Кто-нибудь еще делает это по-другому?

Теги:
puppeteer
jest
coded-ui-tests

1 ответ

0

Использование подсчета подходит для этой реализации. Сколько различных возможностей есть? Если у вас есть только два варианта, упростите их:

let isFirstCall = true;

const pageMockedRequests = (request) => {
  switch (request.url()) {
    case ENDPOINTS.A:
      return request.respond(jsonResponseWrapper(returnValidToken(), 200));
    case ENDPOINTS.B:
      if (isFirstCall) {
        isFirstCall = false;
        return request.respond(jsonResponseWrapper({/* RESPONSE FOR 1st CALL */}, 200));
      }

      return request.respond(jsonResponseWrapper({/* RESPONSE FOR 2nd CALL */}, 200));

    default:
      return request.abort();
  }
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню