Почему я получаю «Ajax авторизация не проходит» в моих тестах - PullRequest
0 голосов
/ 29 декабря 2018

Я слежу за учебниками ember, и, в частности, я пользуюсь услугами .

Я на 99,9% уверен, что у меня есть точный код на месте - я копирую вручную, потому что считаю, что это помогает мне более полно его усвоить, но если что-то не получается, я начинаю использовать проверку различий, чтобы увидетьесли я сделал опечатку.Насколько мне известно, никаких опечаток.

Написанное мною приложение работает идентично скриншотам в учебных пособиях, и единственная ошибка, которую я получаю, - это ошибка lint из-за наличия теста, в котором нет утвержденияэто (пока).

До этого блока все остальные тесты также прошли.Но сейчас я получаю неудачные тесты, которые ранее прошли.Похоже, все они происходят из-за сбоя при вызове заглушки.Первый неудачный тест - integration/component/rental-listing-test.js:

hooks.beforeEach(function() {
  this.rental = {
    image: 'fake.png',
    title: 'test-title',
    owner: 'test-owner',
    type: 'test-type',
    city: 'test-city',
    bedrooms: 3
  };
});
test('should display rental details', async function(assert) {
  await render(hbs`{{rental-listing rental=rental}}`);
  assert.equal(this.element.querySelector('.listing h3').textContent.trim(), 'test-title', 'Title: test-title');
  assert.equal(this.element.querySelector('.listing .owner').textContent.trim(), 'Owner: test-owner', 'Owner: test-owner');
});

Если я удаляю новую строку из rental-listing.hbs ({{location-map location=rental.city}}), тем самым предотвращая использование карты, эти тесты снова проходят (хотяновые тесты для компонента, использующего сервис, имеют проблемы).

Так что я либо делаю что-то не так, что не могу найти, либо специалисты из emberjs.com не предоставили полную информацию в этом руководстве,Нужно ли как-нибудь заглушить картографический сервис?что появляется в файле .hbs для прохождения вышеупомянутого теста?Если так, то почему вы думаете, что они не упомянули об этом?

ETA утверждение:

Ajax authorization failed                      @ 273 ms
Source: Error: Ajax authorization failed
  at new EmberError (http://localhost:7357/assets/vendor.js:13635:31)
  at new AjaxError (http://localhost:7357/assets/vendor.js:116954:13)
  at new UnauthorizedError (http://localhost:7357/assets/vendor.js:116968:13)
  at Class._createCorrectError (http://localhost:7357/assets/vendor.js:117533:25)
  at Class.handleResponse (http://localhost:7357/assets/vendor.js:117528:25)
  at Object.jqXHR.done.fail (http://localhost:7357/assets/vendor.js:117380:41)
  at fire (http://localhost:7357/assets/vendor.js:3609:31)
  at Object.fireWith [as rejectWith] (http://localhost:7357/assets/vendor.js:3739:7)
  at done (http://localhost:7357/assets/vendor.js:9648:14)
  at XMLHttpRequest.<anonymous> (http://localhost:7357/assets/vendor.js:9889:9)

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Вам не нужен ключ API для запуска тестов.Вы попробовали репо супер аренды, чтобы увидеть, есть ли у него такая же проблема?https://github.com/ember-learn/super-rentals

Если у него возникла та же проблема, нам, вероятно, потребуется опубликовать исправление к учебнику.

Обновление

Я вижучто в рассматриваемом интеграционном тесте отсутствует определение сервиса-заглушки.Он есть в репозитории, но не упоминается в руководстве.См. https://github.com/ember-learn/super-rentals/blob/master/tests/integration/components/rental-listing-test.js для кода.Я добавил эту информацию для обновления руководств: https://github.com/ember-learn/guides-source/issues/347

0 голосов
/ 30 декабря 2018

Так что я наконец-то успел взглянуть на это.Проблема состоит в том, что это настроено для внешнего картографического сервиса, чтобы использовать переменную среды для ключа API.Вот почему приложение работает нормально (я использую KEY=value ember s для запуска приложения), но тесты не прошли.Простое использование KEY=value ember t -s заставляет эти тесты пройти.И у меня остались только проблемы с ворсом.

Для справки, это именно то, что должно быть в самом учебнике, и я не уверен, почему я не думал об этом раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...