Fixes #4158
The problem is that in waitUntil if we pass an async callback to waitUntil command, Nightwatch commands inside the callback still just return NightwatchAPI and no promise which can be awaited to get the result. While in perform command, it works fine and Nightwatch commands return a promise inside async callback passed to perfom command, which this is because the alwaysAsync is set true for perform which inturn returns the promise in this code block. Similarly now waitUntil returns promise instead of the NightwatchAPI as expected. Would love to hear any suggestions/opinions.
[ ] Before marking your PR for review, please test and verify your changes by making appropriate modifications to any of the Nightwatch example tests (present in examples/tests directory of the project) and running them. ecosia.js and duckDuckGo.js are good examples to work with.
[ ] Create a new branch from master (e.g. features/my-new-feature or issue/123-my-bugfix);
[ ] If you're fixing a bug also create an issue if one doesn't exist yet;
[ ] If it's a new feature explain why do you think it's necessary. Please check with the maintainers beforehand to make sure it is something that we will accept. Usually we only accept new features if we feel that they will benefit the entire community;
[ ] Please avoid sending PRs which contain drastic or low level changes. If you are certain that the changes are needed, please discuss them beforehand and indicate what the impact will be;
[ ] If your change is based on existing functionality please consider refactoring first. Pull requests that duplicate code will most likely be ignored;
[ ] Do not include changes that are not related to the issue at hand;
[ ] Follow the same coding style with regards to spaces, semicolons, variable naming etc.;
[ ] Always add unit tests - PRs without tests are most of the times ignored.
Fixes #4158 The problem is that in
waitUntil
if we pass an async callback towaitUntil
command, Nightwatch commands inside the callback still just return NightwatchAPI and no promise which can be awaited to get the result. While inperform
command, it works fine and Nightwatch commands return a promise inside async callback passed to perfom command, which this is because thealwaysAsync
is settrue
for perform which inturn returns the promise in this code block. Similarly nowwaitUntil
returnspromise
instead of theNightwatchAPI
as expected. Would love to hear any suggestions/opinions.examples/tests
directory of the project) and running them.ecosia.js
andduckDuckGo.js
are good examples to work with.features/my-new-feature
orissue/123-my-bugfix
);