When writing E2E tests for Angular Scenario Runner, I came across the query() method:
element(selector, label).query(fn)
The documentation says:
Executes the fn (selectedElements, done) function, where selectedElements are the elements that match the given jQuery selector, and done is the function that is called at the end of the fn function. The label is used for test output.
So, I wrote it for a set of buttons on my html page:
it('should display all buttons on page load', function () { var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; element('button', 'UI elements').query(function (selectedElements, done) { selectedElements.each(function (idx, elm) { expect(elm.innerText in buttonText).toEqual(true); }); done(); }); });
As a result of the test, I got a list of 10 unsuccessful pending offers with the text:
Expected true but undefined
Interim debugging showed that the elm.innerText in buttonText condition is true.
So my question is: what went wrong? Is this a misuse of the done() method?