Ember.js ajax POST-запрос не проходит через мираж

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

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

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

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

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

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

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

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

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

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

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

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


person DjangoBlockchain    schedule 01.10.2019    source источник
comment
Можете ли вы поделиться кодом, который запускает запрос?   -  person Buck Doyle    schedule 01.10.2019
comment
Определенно! Добавлю к описанию выше. @БакДойл   -  person DjangoBlockchain    schedule 01.10.2019
comment
Есть ли в тесте вызов setupMirage?   -  person Buck Doyle    schedule 01.10.2019
comment
@BuckDoyle Это было, но у него были проблемы, и он работал неправильно. Я смог исправить это, но добавил вызов startMirage. Спасибо!   -  person DjangoBlockchain    schedule 01.10.2019


Ответы (1)


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

https://www.ember-cli-mirage.com/versions/v0.4.x/manually-starting-mirage/

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

person DjangoBlockchain    schedule 01.10.2019
comment
.@Childishforlife вы должны принять свой собственный ответ, если он сработал для вас - person bartocc; 03.10.2019
comment
@JulienPalmas Постоянно говорит, что я могу принять свой ответ в течение 1 часа? - person DjangoBlockchain; 03.10.2019