I am trying to keep a promise inside Ember.RSVP.all
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.RSVP.all([configuration]).then(function(response) {
});
}
});
But since my integration test is mocking the xhr w / out of the loop, the test failed with the expected error "You turned on the test mode, which turned off autorun of the run loop
So, I wrapped RSVP with simple ember.run, thus
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.run(function() {
Ember.RSVP.all([configuration]).then(function(response) {
});
});
}
});
But I still get the error for some odd reason. Please note: if I run later, this will be fine (this will not work, although I need to execute the asynchronous test code for this test to work correctly)
App.Foo = Ember.Object.create({
bar: function() {
var configuration = ajaxPromise("/api/configuration/", "GET");
Ember.run.later(function() {
Ember.RSVP.all([configuration]).then(function(response) {
});
});
}
});
Here is my implementation of 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);
});
}
How can I wrap Ember.RVSP inside my ember start without throwing this error?
Update
here is my test setup (including my assistant)
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, run xhr mock ( , , , async , )