When writing E2E tests for Angular Scenario Runner I came across a query()
method:
element(selector, label).query(fn)
The documentation says:
Executes the function fn(selectedElements, done), where selectedElements are the elements that match the given jQuery selector and done is a function that is called at the end of the fn function. The label is used for test output.
So I wrote an it-case 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 test execution I received a list of 10 failed expect-clauses with text:
expected true but was undefined
Intermediate debugging showed that elm.innerText in buttonText
condition is truthy.
So my question is, what went wrong? Is it the incorrect usage of done()
method?