Для моих 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
.
Кто-нибудь еще делает это по-другому?
Использование подсчета подходит для этой реализации. Сколько различных возможностей есть? Если у вас есть только два варианта, упростите их:
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();
}
};