feat: Allow selector traits to be conditionally filtered #8
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.
Enabling selector traits to be conditionally filtered so that they can be included/excluded based on user-supplied config. The idea is that creating selectors based off
id
could be configured to ignore certain patterns of auto-generated values:This filtering piggybacks on existing behavior in the selector generation logic to effectively pretend various traits (or portions of traits) just don't exist, thus can't be used when building selectors and automatically falling back to the next-highest-precedence trait.
The initial intent here is to support UICoverage user-supplied config to address auto-generated values breaking element de-duping. This will be primarily around attribute-based selector filters, but for completeness I've added support for filtering all selector types. Aggregate-style traits (
class
andattributes
) allow filtering by part so that individual attribute names/values and classes can be filtered.In addition, I've done some minor cleanup of attribute logic (using updated element APIs rather than iterating using older-style APIs).