I want to use the Node Http module to call my server directly in order to set up my Protractor tests. Http is callback based and I want to turn that into promises.
For example, I want to have this function return promise:
function callMyApi() {
var promise = // somehow create promise;
http.request({path: '/yada/yada', method: 'POST'}, function(resp) {
promise.complete(resp);
});
return promise;
}
So, the question is: what do I need to require()
and put in place of "somehow create promise" for this to work?
Protractor uses WebDriver's promises and exposes that API globally on 'protractor'. So you should be able to do
var deferred = protractor.promise.defer();
return deferred.promise;
For the full WebDriverJS Promise API, see the code at https://code.google.com/p/selenium/source/browse/javascript/webdriver/promise.js