Fix Wrong Order with async MetaSteps #3393
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.
The reporters loose track of the meta step information which results in a wrong order of the steps in the report.
Root Cause
When a meta step gets executed it prepends a before listener to add the meta step information to a step. This works well with sync functions because it is finished after all steps inside the meta step are executed. And after that the prepended listener gets removed.
With an async function a promise gets returned before the all steps are executed inside the meta step. Now the prepended listener gets removed before the steps were executed and the steps do not getting its meta step information properly.
Proposed Solution
I implemented a differentiation between async und sync functions. Async functions are handled with
then()
andcatch()
to make sure all steps were executed before the listener gets removed.Sync functions are handled like before.
Additional changes
Fixed a bug in the runners pageobject test as it was failing with my changes.
Resolves #3131
Resolves #3132
Applicable helpers:
Applicable plugins:
Type of change
Checklist:
npm run docs
)npm run lint
)npm test
)