Разработчики TestCafe: Спасибо за создание отличного, простого в использовании продукта!
Я использую testcafe для проведения полных сквозных тестов в своем электронном приложении, которое отправляет XHR с большинством URL-адресов конечных точек, имеющих схему file://
, а некоторые другие - с API, который мы контролируем.
Я исправил проблемы с CORS (прокси-сервер testcafe отвечал кодом 222) с помощью URL-адресов file://
, запустив пакет Http-server npm с включенным --cors
.
Моя текущая проблема заключается в том, что когда мое приложение отправляет XHR в API, кажется, что ничего, что я делаю, не решает проблему. Я не собираюсь высмеивать запросы API. Когда мое приложение не запускается внутри экземпляров testcafe, у запросов file://
и API нет проблем.
Есть ли (прямой) способ решить эту проблему? (Также существует ли подобное решение для запросов file://
без необходимости создания веб-сервера?) Я предполагаю, что эта проблема является распространенной, и я рассмотрел проблемы Github для testcafe и testcafe-hammerhead как а также страница рецептов. Я также пытался создать ловушку для запроса, но я все еще получаю код ответа 222.
Вот мой пользовательский крючок:
class MyHook extends RequestHook {
constructor(requestFilterRules) {
super(requestFilterRules, {includeHeaders: true, includeBody: true});
}
onRequest(event) {
event.requestOptions.headers['Origin'] = 'file://';
console.log(event);
}
}
Я предполагаю, что все, что мне нужно было сделать, это заменить заголовок Origin:
на что-то, что принимает мой API, согласно приведенному выше коду. (Я предполагаю, что наличие / отсутствие свойств тела includeHeaders / include или метода ответа в приведенном выше коде здесь не влияет, но я не уверен.)
Спасибо!