fix(ByRole): Ensure valid query selectors in all transpilation targets #1055
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.
What:
Fixes erros like "'*[role~="textbox"],[object Set]' is not a valid selector" when using
module
entrypoints.Why:
I only reviewed the transpiled node code in #1046 which didn't transpile
...
away. Themodule
entrypoint does though.Example failure: https://app.circleci.com/pipelines/github/mui-org/material-ui/53629/workflows/6c71e957-ee1c-4e20-8ea4-cd856f7e27d8/jobs/305270
Bad transpilation:
return [explicitRoleSelector].concat(implicitRoleSelectors != null ? implicitRoleSelectors : []).join(',');
-- https://unpkg.com/@testing-library/dom@8.9.0/dist/@testing-library/dom.esm.js
This is equiavalent to
['[role="button"]'].concat(new Set(['button']))
which evaluates to['[role="button"]', new Set(['button'])]
instead of the intended['[role="button"]', 'button']
The
module
entrypoint targets old browsers without support for spread syntax. We assume that every...
target is an array which means...
can be transpiled usingArray.prototype.concat
. However, this breaks for any other iterable (here:Set
). In other words, we're transpiling with@babel/plugin-transform-spread
enablingloose
mode (https://babeljs.io/docs/en/babel-plugin-transform-spread#loose).How:
Directly use
concat
and leave a comment about using...
Checklist:
[ ]Documentation added to thedocs site
module
entrypoint, pasted into local fork of mui-org/material-ui and run successfullyyarn test:karma
which was failing without this change)[ ]TypeScript definitions updated