-
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: wrap playground selectors in double quotes if not included #18442
fix: wrap playground selectors in double quotes if not included #18442
Conversation
Thanks for taking the time to open a PR!
|
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 logic should be implemented in @cypress/unique-selector
instead of changing the selector after it's been determined.
Can you create a PR updating the logic in that repo? Then we'll release a new version of @cypress/unique-selector
and this PR will just bump its version.
Roger! A quick question though, can you provide me the steps on how to test my fix in |
@cypress/unique-selector has unit tests. It looks like a couple of them will need to be updated with this change in any case since the behavior is changing. You can run them with If you'd like to test it out in the context of Cypress, you can use |
@chrisbreiding I tinkered with it for an hour or so... I couldn't manage to run the I tried updating them & tried to run the |
@Manuel-Suarez-Abascal Sorry about the difficulty with that repo. I updated all the dependencies and got the tests working, so it should be good to go once you update with the latest in the master branch. |
@chrisbreiding thanks for the help. I have added a PR here. Unfortunately, I haven't been able to test on the Cypress Playground Selector. I'm not quite sure if it's due to my changes are not being correct (although it seems to work on the other repo) or I'm not linking properly. Could you take a look at it? In case, it's working... I'll wait for my |
bf90e2f
* develop: (52 commits) feat: use hoisted yarn install in binary build (#17285) fix: compile npm packages for node 12 (#18989) fix: show call count even if `cy.stub().log(false)`. (#18907) chore: Update TypeScript to 4.4.4 (#18930) fix: wrap playground selectors in double quotes if not included (#18442) fix: flaky settings_spec test (#18979) chore: Update Chrome (stable) to 96.0.4664.45 (#18931) fix: Loading of specs with % in the filename (#18877) chore: refactor `create` into class `$Cy` (#18715) chore: Update Chrome (beta) to 96.0.4664.45 (#18891) fix: flaky `system-tests-firefox` job (#18848) chore: release @cypress/webpack-preprocessor-v5.10.0 chore: release @cypress/vue-v3.0.5 chore: release @cypress/schematic-v1.6.0 chore: release create-cypress-tests-v1.2.0 release 9.0.0 feat: ensure major release have conduit app wait on localhost:3000 fix install-required-node use --legacy-peer-deps ...
* 10.0-release: (56 commits) chore: post-merge cleanup feat: use hoisted yarn install in binary build (#17285) fix: fix spec list header, "Create specs" prompt, add workspace recommended apollo extension (#18993) feat(unify): reporter settings (#18946) feat: add devServer to config file (#18962) fix: compile npm packages for node 12 (#18989) fix: show call count even if `cy.stub().log(false)`. (#18907) chore: Update TypeScript to 4.4.4 (#18930) fix: wrap playground selectors in double quotes if not included (#18442) fix: flaky settings_spec test (#18979) chore: Update Chrome (stable) to 96.0.4664.45 (#18931) fix: Loading of specs with % in the filename (#18877) chore: refactor `create` into class `$Cy` (#18715) chore: Update Chrome (beta) to 96.0.4664.45 (#18891) fix: flaky `system-tests-firefox` job (#18848) chore: release @cypress/webpack-preprocessor-v5.10.0 chore: release @cypress/vue-v3.0.5 chore: release @cypress/schematic-v1.6.0 chore: release create-cypress-tests-v1.2.0 release 9.0.0 ...
…e-data-clean-refactor * tgriesser/chore/e2e-data-clean: (76 commits) chore: post-merge cleanup feat: use hoisted yarn install in binary build (#17285) fix: fix spec list header, "Create specs" prompt, add workspace recommended apollo extension (#18993) feat(unify): reporter settings (#18946) feat: add devServer to config file (#18962) fix: compile npm packages for node 12 (#18989) fix: show call count even if `cy.stub().log(false)`. (#18907) chore: Update TypeScript to 4.4.4 (#18930) feat: use fuzzy search (#18966) fix: onUnmounted warning in topnav (#18988) fix: wrap playground selectors in double quotes if not included (#18442) fix: flaky settings_spec test (#18979) fix: CYPRESS_INTERNAL_VITE_DEV for development feat: Create default config file (#18943) feat(app): support editor preference (#18932) chore: Update Chrome (stable) to 96.0.4664.45 (#18931) fix: Loading of specs with % in the filename (#18877) feat: improve vite DX (#18937) chore: refactor `create` into class `$Cy` (#18715) feat: Use plugins on config files (#18798) ...
User facing changelog
When using the Selector Playground, we'll wrap the "HTML attribute's value" in double-quotes if they were not present.
Additional details
When using selector playground to select elements with preferred data attributes (data-cy, data-test, data-testid), the provided selector is missing quotes around the value
Only the selectors with data attributes using the Selector Playground were affected by this change.
selector
when using the Playground Selector. If they're included no manipulation is done. If they're not then we wrap the selector within double-quotes.How has the user experience changed?
playground-selector-wrapped-with-double-quotes.mp4
All unit tests passing:
PR Tasks
Should I add some tests for this fix? Can you provide some guidance on where to add them?