How do you add a promise to the flow control queue using protractor?
angularjs, flow-control, promise, protractor
Solution
Protractor exposes WebDriverJS promises on the protractor object so you could use either the `flow.await` method or create a new promise and use `flow.execute`.
The former could be achieved something like:
flow = protractor.promise.controlFlow()
flow.await(dataBuilder.create(testData)).then( function(id) {
testData.id = id.id;
})
And you can see an example of the latter in this blog post.
This could be done in the `it` function itself or if this is common to all your tests consider placing it in the `onPrepare` function of your protractor config.
Problem
In my test I am calling and outside library to seed data into our backend before running some ui tests using protractor. ``` 'use strict' var dataBuilder = require('data_builder.js'); describe('test', function () { var testData = { name: 'foo', title: 'bar', ... }; beforeEach(function () { //create test data on the backend dataBuilder.create(testData).then(function (id) { testData.id = id.id; }); }); it('test something', function () { ... }); ``` As such the promise returned by the dataBuilder isn't resolved before the it() actually finishes. How can I add the promise returned by the dataBuilder into webDriver's flow control?