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
meta: resolve e2e flakiness #4077
Conversation
Taking a look if I can further attempt to unflaky that test |
FWIW it would also be OK to leave it marked as FLAKY, if we only have one test flaky instead of three, that's still a win IMO |
Failing on something unrelated?
|
It looks like the flakiness is still there... |
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
If it can't be fixed, I'll probably |
Hum I think we can simply revert f593251, if it's able to run successfully the stress test, let's call it a win for today. If that's not enough, I agree that skipping is appropriate for now. |
I think the stress test is too much, we're running so many tests that I find it likely it will never do all of those successfully, due to what I mentioned:
I propose to skip that test for now and continue with more certainty |
I don't think the stress test is too much, it's only running 50 times the test suite, we open way more than 50 PRs in one month. If we are able to get it to turn green after running the test suite 50 times, that means we'll get very little false positive errors. |
* main: ci: add GHA to tryout bundling Uppy with popular bundlers (#4084) @uppy/core: Fix `Restrictor` counts ghost files against `maxNumberOfFiles` (#4078) uppy: add a decoy `Core` export to warn users about the renaming (#4085) meta: run CI when modifying workflow files (#4091) meta: limit the number of unnecessary CI runs (#4086) Update remote-sources.md (#4087) meta: remove all remaining occurrences of `Uppy.Core` (#4082) meta: fix typo in `e2e.yml` Restrict e2e CI runs (#4075) Set default videoConstraints (#4070)
// as this is doing white box testing (testing internal state). | ||
// But E2e is more about black box testing, you don’t care about the internals, only the result. | ||
// May make more sense to turn this into a unit test. | ||
it.skip('should emit one assembly-cancelled event when cancelled', () => { |
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.
Can we skip it only in CI? Since it works fine locally.
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.
I don't think cypress offers that option. Only thing I can think of is having some sort of env var, but not sure about that approach
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.
You may also skip at runtime using this.skip(). If a test needs an environment or configuration which cannot be detected beforehand, a runtime skip is appropriate.
I think we can check for 'GITHUB_REF' in process.env
. If that turns out to be more difficult, let’s give up on this idea and let’s stick with .skip
.
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.
I think the better approach is to refactor this test to a unit test.
The test suite is now stable. Final reviews welcome. |
| Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.4.2 | @uppy/onedrive | 3.0.1 | | @uppy/audio | 1.0.2 | @uppy/progress-bar | 3.0.1 | | @uppy/aws-s3 | 3.0.2 | @uppy/provider-views | 3.0.1 | | @uppy/aws-s3-multipart | 3.0.2 | @uppy/react | 3.0.2 | | @uppy/box | 2.0.1 | @uppy/redux-dev-tools | 3.0.1 | | @uppy/companion | 4.0.2 | @uppy/remote-sources | 1.0.2 | | @uppy/companion-client | 3.0.2 | @uppy/screen-capture | 3.0.1 | | @uppy/compressor | 1.0.1 | @uppy/status-bar | 3.0.1 | | @uppy/core | 3.0.2 | @uppy/store-default | 3.0.2 | | @uppy/dashboard | 3.1.0 | @uppy/store-redux | 3.0.2 | | @uppy/drag-drop | 3.0.1 | @uppy/svelte | 3.0.1 | | @uppy/drop-target | 2.0.1 | @uppy/thumbnail-generator | 3.0.2 | | @uppy/dropbox | 3.0.1 | @uppy/transloadit | 3.0.2 | | @uppy/facebook | 3.0.1 | @uppy/tus | 3.0.2 | | @uppy/file-input | 3.0.1 | @uppy/unsplash | 3.0.1 | | @uppy/form | 3.0.1 | @uppy/url | 3.0.1 | | @uppy/golden-retriever | 3.0.1 | @uppy/utils | 5.0.2 | | @uppy/google-drive | 3.0.1 | @uppy/vue | 1.0.1 | | @uppy/image-editor | 2.0.1 | @uppy/webcam | 3.2.0 | | @uppy/informer | 3.0.1 | @uppy/xhr-upload | 3.0.2 | | @uppy/instagram | 3.0.1 | @uppy/zoom | 2.0.1 | | @uppy/locales | 3.0.1 | uppy | 3.1.0 | - meta: Fix companion-deploy-yml (Mikael Finstad) - website: fix tag for Activity Feed (Livia Medeiros / #4118) - @uppy/golden-retriever: fix condition to load files from service worker (Merlijn Vos / #4115) - website: remove references to the deleted `disc.html` page (Antoine du Hamel / #4119) - @uppy/locales: Create uz_UZ (Ozodbek1405 / #4114) - @uppy/golden-retriever: Fix endless webcam re-render with Golden Retriever (Merlijn Vos / #4111) - @uppy/image-editor: image-editor: fix controls in small Dashboard (Livia Medeiros / #4113) - website: add “what is Uppy” to the blog post (Artur Paikin) - meta: fix Companion deploy (Antoine du Hamel / #4095) - @uppy/dashboard: add dashboard:show-panel event (Jon-Pierre Sanchez / #4108) - website: Small post fixes (Artur Paikin) - @uppy/companion: Companion throttle progress by time (Mikael Finstad / #4101) - meta: skip a few more unnecessary CI runs (Antoine du Hamel / #4106) - meta: resolve e2e flakiness (Merlijn Vos / #4077) - meta: run linters on almost every PRs (Antoine du Hamel / #4105) - website: 3.0 blog post tweaks (Merlijn Vos / #4104) - meta: Fix linter warnings in 3.0 post (Murderlon) - website: Add 3.0 blog post (Artur Paikin / #4046) - website: fix ESM import in example (Livia Medeiros / #4103) - doc: Update "Dashboard typo" (Laban / #4096) - @uppy/audio,@uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/box,@uppy/companion-client,@uppy/companion,@uppy/compressor,@uppy/core,@uppy/dashboard,@uppy/drag-drop,@uppy/drop-target,@uppy/dropbox,@uppy/facebook,@uppy/file-input,@uppy/form,@uppy/golden-retriever,@uppy/google-drive,@uppy/image-editor,@uppy/informer,@uppy/instagram,@uppy/locales,@uppy/onedrive,@uppy/progress-bar,@uppy/provider-views,@uppy/react,@uppy/redux-dev-tools,@uppy/remote-sources,@uppy/screen-capture,@uppy/status-bar,@uppy/store-default,@uppy/store-redux,@uppy/svelte,@uppy/thumbnail-generator,@uppy/transloadit,@uppy/tus,@uppy/unsplash,@uppy/url,@uppy/utils,@uppy/vue,@uppy/webcam,@uppy/xhr-upload,@uppy/zoom: add missing entries to changelog for individual packages (Antoine du Hamel / #4092) - meta: ci: add GHA to tryout bundling Uppy with popular bundlers (Antoine du Hamel / #4084) - @uppy/core: Fix `Restrictor` counts ghost files against `maxNumberOfFiles` (Andrew McIntee / #4078) - uppy: add a decoy `Core` export to warn users about the renaming (Antoine du Hamel / #4085) - meta: run CI when modifying workflow files (Antoine du Hamel / #4091) - meta: limit the number of unnecessary CI runs (Antoine du Hamel / #4086) - meta: Update remote-sources.md (heocoi / #4087) - uppy: remove all remaining occurrences of `Uppy.Core` (Antoine du Hamel / #4082) - meta: fix typo in `e2e.yml` (Antoine du Hamel) - meta: Restrict e2e CI runs (Merlijn Vos / #4075) - @uppy/webcam: Set default videoConstraints (Artur Paikin / #4070) - @uppy/angular: Fix angular build error (Murderlon) - website: add `Known issues` section on Migration Guide (Antoine du Hamel / #4066) - @uppy/core: fix types (Antoine du Hamel / #4072) - doc: remove use of deprecated `metaFields` option (Antoine du Hamel / #4073)
| Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/angular | 0.4.2 | @uppy/onedrive | 3.0.1 | | @uppy/audio | 1.0.2 | @uppy/progress-bar | 3.0.1 | | @uppy/aws-s3 | 3.0.2 | @uppy/provider-views | 3.0.1 | | @uppy/aws-s3-multipart | 3.0.2 | @uppy/react | 3.0.2 | | @uppy/box | 2.0.1 | @uppy/redux-dev-tools | 3.0.1 | | @uppy/companion | 4.0.2 | @uppy/remote-sources | 1.0.2 | | @uppy/companion-client | 3.0.2 | @uppy/screen-capture | 3.0.1 | | @uppy/compressor | 1.0.1 | @uppy/status-bar | 3.0.1 | | @uppy/core | 3.0.2 | @uppy/store-default | 3.0.2 | | @uppy/dashboard | 3.1.0 | @uppy/store-redux | 3.0.2 | | @uppy/drag-drop | 3.0.1 | @uppy/svelte | 3.0.1 | | @uppy/drop-target | 2.0.1 | @uppy/thumbnail-generator | 3.0.2 | | @uppy/dropbox | 3.0.1 | @uppy/transloadit | 3.0.2 | | @uppy/facebook | 3.0.1 | @uppy/tus | 3.0.2 | | @uppy/file-input | 3.0.1 | @uppy/unsplash | 3.0.1 | | @uppy/form | 3.0.1 | @uppy/url | 3.0.1 | | @uppy/golden-retriever | 3.0.1 | @uppy/utils | 5.0.2 | | @uppy/google-drive | 3.0.1 | @uppy/vue | 1.0.1 | | @uppy/image-editor | 2.0.1 | @uppy/webcam | 3.2.0 | | @uppy/informer | 3.0.1 | @uppy/xhr-upload | 3.0.2 | | @uppy/instagram | 3.0.1 | @uppy/zoom | 2.0.1 | | @uppy/locales | 3.0.1 | uppy | 3.1.0 | - meta: Fix companion-deploy-yml (Mikael Finstad) - website: fix tag for Activity Feed (Livia Medeiros / transloadit#4118) - @uppy/golden-retriever: fix condition to load files from service worker (Merlijn Vos / transloadit#4115) - website: remove references to the deleted `disc.html` page (Antoine du Hamel / transloadit#4119) - @uppy/locales: Create uz_UZ (Ozodbek1405 / transloadit#4114) - @uppy/golden-retriever: Fix endless webcam re-render with Golden Retriever (Merlijn Vos / transloadit#4111) - @uppy/image-editor: image-editor: fix controls in small Dashboard (Livia Medeiros / transloadit#4113) - website: add “what is Uppy” to the blog post (Artur Paikin) - meta: fix Companion deploy (Antoine du Hamel / transloadit#4095) - @uppy/dashboard: add dashboard:show-panel event (Jon-Pierre Sanchez / transloadit#4108) - website: Small post fixes (Artur Paikin) - @uppy/companion: Companion throttle progress by time (Mikael Finstad / transloadit#4101) - meta: skip a few more unnecessary CI runs (Antoine du Hamel / transloadit#4106) - meta: resolve e2e flakiness (Merlijn Vos / transloadit#4077) - meta: run linters on almost every PRs (Antoine du Hamel / transloadit#4105) - website: 3.0 blog post tweaks (Merlijn Vos / transloadit#4104) - meta: Fix linter warnings in 3.0 post (Murderlon) - website: Add 3.0 blog post (Artur Paikin / transloadit#4046) - website: fix ESM import in example (Livia Medeiros / transloadit#4103) - doc: Update "Dashboard typo" (Laban / transloadit#4096) - @uppy/audio,@uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/box,@uppy/companion-client,@uppy/companion,@uppy/compressor,@uppy/core,@uppy/dashboard,@uppy/drag-drop,@uppy/drop-target,@uppy/dropbox,@uppy/facebook,@uppy/file-input,@uppy/form,@uppy/golden-retriever,@uppy/google-drive,@uppy/image-editor,@uppy/informer,@uppy/instagram,@uppy/locales,@uppy/onedrive,@uppy/progress-bar,@uppy/provider-views,@uppy/react,@uppy/redux-dev-tools,@uppy/remote-sources,@uppy/screen-capture,@uppy/status-bar,@uppy/store-default,@uppy/store-redux,@uppy/svelte,@uppy/thumbnail-generator,@uppy/transloadit,@uppy/tus,@uppy/unsplash,@uppy/url,@uppy/utils,@uppy/vue,@uppy/webcam,@uppy/xhr-upload,@uppy/zoom: add missing entries to changelog for individual packages (Antoine du Hamel / transloadit#4092) - meta: ci: add GHA to tryout bundling Uppy with popular bundlers (Antoine du Hamel / transloadit#4084) - @uppy/core: Fix `Restrictor` counts ghost files against `maxNumberOfFiles` (Andrew McIntee / transloadit#4078) - uppy: add a decoy `Core` export to warn users about the renaming (Antoine du Hamel / transloadit#4085) - meta: run CI when modifying workflow files (Antoine du Hamel / transloadit#4091) - meta: limit the number of unnecessary CI runs (Antoine du Hamel / transloadit#4086) - meta: Update remote-sources.md (heocoi / transloadit#4087) - uppy: remove all remaining occurrences of `Uppy.Core` (Antoine du Hamel / transloadit#4082) - meta: fix typo in `e2e.yml` (Antoine du Hamel) - meta: Restrict e2e CI runs (Merlijn Vos / transloadit#4075) - @uppy/webcam: Set default videoConstraints (Artur Paikin / transloadit#4070) - @uppy/angular: Fix angular build error (Murderlon) - website: add `Known issues` section on Migration Guide (Antoine du Hamel / transloadit#4066) - @uppy/core: fix types (Antoine du Hamel / transloadit#4072) - doc: remove use of deprecated `metaFields` option (Antoine du Hamel / transloadit#4073)
What do our flaky tests have in common? There is one common denominator between our stable and flaky tests, it's the fact that we use
cy.window().then(({ uppy }) => {})
in combination withcy.wait()
to eventually make an assertion. This led me to believe there is a possible race condition going on here.To solve our flakiness (hopefully):
.then
onwait()
instead of after itcy.window
, with the rest of the test in there.