feat(browser): introduce expect.element
method and bundle jest-dom
matchers with @vitest/browser
#5910
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.
Description
This PR adds
expect.element(element)
method which is a shorthand forexpect.poll(() => element)
, but it requiresElement
:The main reason why this API exists is to make retriability easier and more intuitive to manage. Previously, the most performant way was to get the element and pass the reference to
poll
which makes it verbose and not intuitive:If you have it like this, the
getBy
is called multiple times which might be slow depending on the DOM state and the query itself:This PR also bundles
jest-dom
matchers for Vitest browser mode. I hope we can just import them in the future without the bundle process.To have types recognize these, users need to add
@vitest/browser/providers/playwright
or@vitest/browser/providers/webdriverio
to theirtsconfig
file.TODO:
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
pnpm-lock.yaml
unless you introduce a new test example.Tests
pnpm test:ci
.Documentation
pnpm run docs
command.Changesets
feat:
,fix:
,perf:
,docs:
, orchore:
.