Ember.js POST-запрос ajax не проходит через mirage - PullRequest
0 голосов
/ 01 октября 2019

Я пишу несколько тестов для компонента в моем приложении Ember, где компонент выполняет запрос POST ajax к API моих серверов, который будет возвращать строку местоположения файла.

Я добавил вmirage/config.js указывает маршрут, который должен использоваться при выполнении запроса ajax.

  this.post('/foobar', () => {
    return "test";
  });

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

POST http://localhost:8000/foobar net::ERR_CONNECTION_REFUSED.

При помещении отладчика в файл mirage/config.js он не останавливается и, похоже, полностью игнорирует маршрут в моем mirage/config.js.

URL-адрес и пространство имен настраиваются в файле конфигурации.

Когда я запускаю свое приложение на локальном хосте и нажимаю на эту конечную точку, оно корректно проходит через Mirage. Но он не использует mirage во время тестирования.

Код, который делает запрос ajax.

ajax.request(
        uri.toString(),
        {
          headers: ajax.get('headers'),
          method: 'POST',
          data: data
        });

Это делается нажатием кнопки, которую я "нажимаю" на своеминтеграционный тест.

Что можно сделать, чтобы продолжить тестирование и выяснить, почему запрос не проходит через mirage?

1 Ответ

1 голос
/ 01 октября 2019

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

https://www.ember -cli-mirage.com / версии / v0.4.x / вручную-starting-mirage /

Следуя этим шагам, я смог правильно запустить mirage и заставить мои тесты работать.

...