-
Notifications
You must be signed in to change notification settings - Fork 324
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
E2E test fixing and bring back reports #9238
Conversation
app/gui2/eslint.config.js
Outdated
@@ -50,6 +57,16 @@ const conf = [ | |||
'vue/multi-word-component-names': 0, | |||
}, | |||
}, | |||
// We must make sure our E2E tests await all steps, otherwise they're flacky. |
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.
typo, flaky tests
app/gui2/playwright.config.ts
Outdated
trace: 'on-first-retry', | ||
// We have a problem with many transient failures; to investigate them, we need trace on all | ||
// tests. | ||
trace: 'on', |
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.
Could this be retain-on-first-failure
?
.instrument(span) | ||
.boxed() |
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.
Why .boxed()
instead of .await
? Also, this whole change could probably be an #[instrument]
annotation instead.
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.
This is a convention to avoid unnecessary lifetime dependencies on futures — we don't want to force caller to keep arguments alive while the artifacts are uploading. To avoid spurious lifetime dependencies we avoid using async fn
here, which in turn makes it impossible to use #[instrument]
.
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.
approving the saving of playwright reports
Pull Request Description
After investigating some errors, I found another two missing awaits in our tests. Because those are so easy to overlook, I added a lint rule which makes failure on unhandled promise (for e2e tests only).
Also, enabled HTML reports again, with traces this time, to enable closer investigation of any failure in the future. @mwu-tow added code for uploading them in GH.
Important Notes
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
[ ] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
[ ] Unit tests have been written where possible.[ ] If GUI codebase was changed, the GUI was tested when built using./run ide build
.