test: Rewrite TestGrafanaClient without relying on Promise #21019
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.
Latest Grafana started to use zone.js [1], which completely replaces the
global
Promise
class with a custom implementation. This doesn'tserialize well through WebDriver, and completely breaks the
awaitPromise
mode of script evaluation. In other words, this breaksall our
Browser.wait*()
methods.So rewrite the Grafana part of
TestGrafanaClient
to use Python-levelpolling, and use the old JS-layer mouse click emulation (as the HTML
Element result from
ph_find_scroll_into_view()
also isn't accessible).See cockpit-project/bots#6838
[1] https://github.com/angular/zone.js
Plus a few small fixes.