-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add data rendering count for visualisation #28936
Merged
dmlemeshko
merged 7 commits into
elastic:master
from
dmlemeshko:add-data-rendering-count-for-visualisation
Jan 21, 2019
Merged
Add data rendering count for visualisation #28936
dmlemeshko
merged 7 commits into
elastic:master
from
dmlemeshko:add-data-rendering-count-for-visualisation
Jan 21, 2019
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
💚 Build Succeeded |
💔 Build Failed |
spalger
approved these changes
Jan 18, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, tiny naming suggestion but feel free to ignore
}); | ||
} | ||
|
||
async waitForVisualizationRenderingCompleted() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
naming suggestion: waitForVisualizationRenderingStabilized()
💚 Build Succeeded |
💚 Build Succeeded |
This was referenced Jan 22, 2019
dmlemeshko
added a commit
to dmlemeshko/kibana
that referenced
this pull request
Jan 23, 2019
* add RENDERING_COUNT_ATTRIBUTE * update tests with new wait for visualization * update 'tile map visualize app' tests with await and waitForVisualization * update tests with waitForVisualization * remove waitVisualisationLoaded * fix naming suggestion * remove redundant waiting in functional tests
dmlemeshko
added a commit
that referenced
this pull request
Jan 23, 2019
* add RENDERING_COUNT_ATTRIBUTE * update tests with new wait for visualization * update 'tile map visualize app' tests with await and waitForVisualization * update tests with waitForVisualization * remove waitVisualisationLoaded * fix naming suggestion * remove redundant waiting in functional tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
While working on WebDriver migration we faced many
visualize app
tests been flaky. Further investigation showed thatdata-render-complete
attribute is not a reliable way to check if visualization is loaded:The value can change from
true
tofalse
multiple times as it depends on the number of renderings in happening each case, it can be 1 or it can be 3 of them. It is important to wait properly for loading done to avoid StaleElement exceptions.@markov00 pointed me to his PR Adding data-rendering-count attribute to detect rendering cycles #22420, that I used as POC.
It proved to be a robust and reliable way to handle visualizations being loaded, I haven't seen a better solution so far.
With this PR we have:
waitForRenderingCount(previousCount = 0, increment = 1)
that waits for specific number of renderings to be completed; Should be used when renderings increment is contant (e.g. +1 whenvisualizeEditorRenderButton
is clicked)waitForVisualization()
is waiting untildata-rendering-count
number is constant within 1000 ms; there are cases when final number of renderings cannot be predicted (changing from 1 to 3 each test run), e.g. afterfilterBar.removeFilter
is called inpie chart
testsChecklist
- [ ] This was checked for cross-browser compatibility, including a check against IE11- [ ] Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n support- [ ] Documentation was added for features that require explanation or tutorials- [ ] This was checked for keyboard-only and screenreader accessibilityFor maintainers
- [ ] This was checked for breaking API changes and was labeled appropriately- [ ] This includes a feature addition or change that requires a release note and was labeled appropriately