From ccec2f4e57922660ec3fa41b85373931b29b8fe5 Mon Sep 17 00:00:00 2001 From: Hank Duan Date: Mon, 4 Aug 2014 16:22:34 -0700 Subject: [PATCH] fix issue where ElementFinder.then does not return a promise See https://github.com/angular/protractor/issues/1152 --- lib/protractor.js | 2 +- spec/basic/elements_spec.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/protractor.js b/lib/protractor.js index 0099d8a3c..4f3ec52d2 100644 --- a/lib/protractor.js +++ b/lib/protractor.js @@ -744,7 +744,7 @@ var buildElementHelper = function(ptor) { if (this.opt_actionResult_) { return this.opt_actionResult_.then(fn, errorFn); } else { - return fn(this); + return webdriver.promise.fulfilled(fn(this)) } }; diff --git a/spec/basic/elements_spec.js b/spec/basic/elements_spec.js index 5696a02a8..30806ae2c 100644 --- a/spec/basic/elements_spec.js +++ b/spec/basic/elements_spec.js @@ -305,6 +305,12 @@ describe('ElementFinder', function() { }); expect(successful).toEqual(false); }); + + it('should always return a promise when calling then', function() { + browser.get('index.html#/form'); + var e1 = element(by.tagName('body')).then(function(){}); + expect(e1 instanceof protractor.promise.Promise).toBe(true); + }); }); describe('evaluating statements', function() {