Как решить проблемы CORS с testcafe для файлов: // и https: // XHRs - PullRequest
0 голосов
/ 01 сентября 2018

Разработчики 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 или метода ответа в приведенном выше коде здесь не влияет, но я не уверен.)

Спасибо!

...