add timeouts & messages to all driver.wait calls #4841
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves
Should help debug multiple issues with the GUI integration tests such as #4653
Proposed Changes
For each call to Selenium's
wait
method, set a timeout which is shorter than the overall Jasmine timeout and also include a custom message to help indicate which call timed out.Reason for Changes
Without these changes every timeout displays the same message with the same call stack -- a call stack which doesn't include any of our test files:
The new message for a timeout during
findByXpath
looks something like this:An earlier version of this change included detailed messages for element-based timeouts as well (
waitUntilGone
andelementVisible
) but they failed in some cases. I started trying to make them work for all cases and the complexity started growing rapidly so I decided to leave that as future work. This version still reports which function timed out (waitUntilGone
for example) along with a call stack, which is better than what we had before.