-
Notifications
You must be signed in to change notification settings - Fork 3.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
fix: Subscribe to framework detection changes in wizard #26437
fix: Subscribe to framework detection changes in wizard #26437
Conversation
Mine shows up immediately regardless, even if I have the bug.mov |
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.
Code looks good but I could not run the test plan - any ideas what I might be missing? Is there another step?
@lmiller1990 Try |
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.
The code looks good to me but the after video is less than ideal UX to me. Nothing indicates that we are doing work to search for your framework. Do we have a less disruptive way of alerting the user we are loading something after the initial paint?
@jordanpowell88 The five second delay is just to accentuate this scenario and make it more observable - in reality, this typically occurs within hundreds of milliseconds and occasionally happens to just miss the point where the gql query is resolved for the vue component. Unless the user is on a massively slow machine this shouldn't ever be observed as anything more than a "blip" |
Ok that makes sense. I must have missed this context |
I tested locally, works great 💯 |
@@ -158,6 +158,10 @@ export = { | |||
}, | |||
|
|||
async run (options: LaunchArgs, _loading: Promise<void>) { | |||
// Note: We do not await the `_loading` promise here since initializing | |||
// the data context can significantly delay initial render of the UI | |||
// https://github.com/cypress-io/cypress/issues/26388#issuecomment-1492616609 |
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 good context, but might be worth pointed to code vs a github comment in the event this is code ever changes so this stays "true" and/or relevant.
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.
Works well, and code looks good
* feat/protocol: (45 commits) chore: adding support for url:changed (#26519) chore: adding viewport:changed to protocol (#26508) chore: Reduce dependencies and binary size, add circle ci detector (#26522) chore: 12.10.0 release (#26517) test: fix flaky tests (#26505) chore: Check project dependencies for CT compatibility (#26497) chore: update vm2 to 3.9.16 (#26489) chore: enable builds on feat/protocol branch (#26506) chore: [skip ci] update to labels looked at by stalebot (#26496) chore: connecting to electron browser (#26471) chore: [skip ci] turning on stale bot (#26488) chore: fix issue with logs without wallClockUpdatedAt (#26473) Update triage_add_to_project.yml chore: Update Chrome (stable) to 112.0.5615.49 and Chrome (beta) to 113.0.5672.24 (#26434) feat: display framework definition errors (#26183) fix: correctly resolve dependencies for CT onboarding when using Yarn Plug n Play (#26452) fix: Subscribe to framework detection changes in wizard (#26437) fix: make clicks on type('{enter}') composed (#26395) chore: update add-to-project workflow (#26439) chore: Pass telemetry resources from the node process to the browser (#26468) ...
open
mode not waiting for DataContext to initialize #26388Additional details
Launchpad does not wait for the data context to initialize in case there are significant slowdowns which would make the UI non-responsive on launch. This can cause the CT framework auto-detection to not populate if the detection is somehow delayed (complex project, slow machine, etc) - the detection occurs correctly but the GQL query in the Vue component has already resolved so the result is not reflected in the UI.
This PR adds a subscription so the Vue component can listen for updates to this data and reflect them in the UI.
Steps to test
develop
, add a delay to wizard initialization by updating theinitialize
function with this line:npm create vite@latest
, use any supported framework & optionscd <project dir>
,npm i
,npm i -D cypress
cd <cypress repo>
,yarn cypress:open --project <path to project> --component
How has the user experience changed?
Before
before.mov
After
after.mov
PR Tasks
cypress-documentation
?type definitions
?