Я пытаюсь выполнить обещание в Ember.RSVP.allКак выполнить Ember.RSVP.all внутри цикла уголек выполнения правильно
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.RSVP.all([configuration]).then(function(response) {
//do something with the response in here
});
}
});
Но поскольку моя интеграция тест высмеивает XHR ж/оттуда запустить цикл тест не пройден с ожидаемой ошибкой «Вы включили режим тестирования, который отключенный вводный цикл» автозапуск»
Так я завернула RSVP с простым ember.run как так
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.run(function() {
Ember.RSVP.all([configuration]).then(function(response) {
//do something with the response in here
});
});
}
});
Но я все еще получаю e ошибка по какой-то нечетной причине. Примечание -Если я бегу позже это нормально (это не будет работать, хотя, как мне нужно EXEC код асинхронной для этого теста для корректной работы)
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.run.later(function() {
Ember.RSVP.all([configuration]).then(function(response) {
//do something with the response in here
});
});
}
});
Вот мой ajaxPromise -fyi реализация
var ajaxPromise = function(url, type, hash) {
return new Ember.RSVP.Promise(function(resolve, reject) {
hash = hash || {};
hash.url = url;
hash.type = type;
hash.dataType = 'json';
hash.success = function(json) {
Ember.run(null, resolve, json);
};
hash.error = function(json) {
Ember.run(null, reject, json);
};
$.ajax(hash);
});
}
Как я могу обернуть Ember.RVSP внутри моего запуска ember с его выбросом этой ошибки?
Update
вот моя испытательная установка (включая мой помощник)
document.write('<div id="ember-testing-container"><div id="wrap"></div></div>');
App.setupForTesting();
App.injectTestHelpers();
test("test this async stuff works", function() {
visit("/").then(function() {
equal(1, 1, "omg");
});
});
Единственная часть я оставил вне что я не буду использовать JQuery-mockjax поэтому никаких оберток цикла выполнения xhr mock (и отчасти именно поэтому мне нравится эта библиотека, она не проходит тест, когда я не обертываю асинхронный код циклом запуска, как предлагает основная команда)
Я обновил выше -Давайте мне дать ваше предложение бежать быстро –
спасибо, спасибо, спасибо !!! –