Я начинаю добавлять приемочные испытания к моему проекту Ember. Начав с одного, который пытается войти в мое приложение:Тест приемочного приёма не работает с AJAX
import { test } from 'ember-qunit';
import moduleForAcceptance from '../helpers/module-for-acceptance';
moduleForAcceptance('Acceptance | login');
test('logging in', function(assert){
visit('/login');
andThen(function(){
assert.equal(currentURL(), '/login');
});
fillIn('#login input[name=email]', '[email protected]');
fillIn('#login input[name=password]', 'password');
click('#login button[type=submit]');
andThen(function(){
assert.equal(currentURL(), '/dashboard');
});
});
Но это не удается, потому что вызов AJAX на мой REST API для проверки подлинности не удается. Это отлично работает, когда приложение работает нормально, но не после завершения приемочного теста.
Я проследил его обратно следующее сообщение об ошибке, возвращаемых ember-ajax
:
Ember AJAX Request POST https://127.0.0.1:8081/login returned a 0\nPayload (Empty Content-Type)\n""
Мой API даже не получает вызов, так что это, кажется, ошибка с отправкой запроса REST. Я проверил hash
объект в node_modules/ember-ajax/addon/mixins/ajax-request.js
как раз перед его отправкой через методу JQuery AJAX:
{ type: 'POST',
data: { email: '[email protected]', password: 'password' },
url: 'https://127.0.0.1:8081/login',
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
headers: { Authorization: 'Bearer undefined; PublicKey Ab732Jte883Jiubgd84376HhhndikT6' } }
contentType
определяется. Это точно также, как выглядит hash
при выполнении одного и того же вызова AJAX с приложением, работающим нормально.
Итак, что же происходит с приемочными испытаниями Ember, которые специально препятствуют работе AJAX? Я подозреваю, что есть свойство config или environment, о котором я не знаю, что мне нужно изменить/настроить, чтобы заставить его работать.
Я бегу:
- уголек-кли: 2.8.0
- узел: 4.5.0
- уголек-Ajax: 2.5.1
- уголек-кли-QUnit: 3,0 .1
- phantomjs: 2.1.7