NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4770 most downloaded on npm
Last release 18 days ago
16 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 2.0 years
Most releases are documented
notes for 32 of 53 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
126 releases · first in 2018
fix: generic SFC findComponent types by @simonyang08 in #2934
Full Changelog: v2.5.0...v2.5.1
⚠️ Breaking change: Vue Test Utils no longer supports class components. See #2904 .
⚠️ Breaking change: Vue Test Utils no longer supports class components. See #2904.
summary element behavior by @nn-morishita in #2806Full Changelog: v2.4.11...v2.5.0
One column per quarter.
Drop legacy Mutation Event listener entries
setData() correctly for components using both setup() and data() (#2846)GlobalMountOptions type (#2851)event.code on keydown/keyup (#2850)Restore text()/html() for single-root components
Tolerate duplicate attachTo cleanup
compare changes 🩹 Fixes Correct declaration entrypoint ( #2826 ) 🤖 CI Enable pkg.pr.new ( #2827 ) ❤️ Contributors Cédric Exbrayat ( @cexbrayat ) Danie
Add migration step for deprecated ref syntax in findAllComponents
<select> (#2819)fix: circular references in props cause maximum call stack size exceeded by @Evobaso-J in #2371
Full Changelog: v2.4.5...v2.4.6
feat: add teleport stub possibility, https://github.com/vuejs/test-ut… by @blizzardKv in #2336
Full Changelog: v2.4.4...v2.4.5
fix: ignore prototype methods when using setData on objects by @Haberkamp in #2265
Full Changelog: v2.4.3...v2.4.4
types(setProps): setProps to Partial props by @pikax in #2241
Full Changelog: v2.4.2...v2.4.3
Note: A fix for the text() method (https://github.com/vuejs/test-utils/pull/2231) may force developers to update tests that were checking the text of
Note: A fix for the text() method (https://github.com/vuejs/test-utils/pull/2231) may force developers to update tests that were checking the text of several elements at once, as the spaces of each element are now trimmed (as they are when using text() on a single element). So if you were checking the text of <span>Trimmed </span><span>Example</span>, it is now TrimmedExample instead of Trimmed Example (and the text() of the first span is still Trimmed as it was before).
<transition> stubs by @alecgibson in https://github.com/vuejs/test-utils/pull/2185setData by @rory-instil in https://github.com/vuejs/test-utils/pull/2166VNodeChild type from vue to avoid breakage by @sodatea in https://github.com/vuejs/test-utils/pull/2237Full Changelog: https://github.com/vuejs/test-utils/compare/v2.4.1...v2.4.2
fix: modify createVMProxy to fix issue 2116 by @jason-chang in https://github.com/vuejs/test-utils/pull/2125
isVisible() by @alecgibson in https://github.com/vuejs/test-utils/pull/2122Full Changelog: https://github.com/vuejs/test-utils/compare/v2.4.0...v2.4.1
Note: there *might* be some minor breaking changes around types. We tried hard to avoid this and tested a few different projects, but there was some m…
Note: there might be some minor breaking changes around types. We tried hard to avoid this and tested a few different projects, but there was some major under the hood changes relating to types (which should improve the TypeScript experience). See the note at the top of the previous release, 2.4.0-alpha.2: https://github.com/vuejs/test-utils/releases/tag/v2.4.0-alpha.2
Between the last main release, v2.3.2, and v2.4.0, there were three alphas:
Please see those release notes for changes if you are updating from v2.3.2. Again, there should not be any major changes, and you code and tests should continue to work as before without any changes.
If you do encounter breaking changes transitioning from 2.3.x -> 2.4.x, please file an issue.
Note: It has no API related breaking changes, but some types might be impacted - the full extent of https://github.com/vuejs/test-utils/pull/2026 is s…
Note: It has no API related breaking changes, but some types might be impacted - the full extent of https://github.com/vuejs/test-utils/pull/2026 is still being investigated, but at this point it's unlikely you'll need to change any code. In general, type safety should be improved across the board.
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.4.0-alpha.1...v2.4.0-alpha.2
chore: remove unused code by @lmiller1990 in https://github.com/vuejs/test-utils/pull/2037
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.4.0-alpha.0...v2.4.0-alpha.1
NOTE: this is published under v2.4.0-alpha.0. It _may_ contain breaking changes, only relating to which type definitions are exposed. For this reason…
NOTE: this is published under v2.4.0-alpha.0. It may contain breaking changes, only relating to which type definitions are exposed. For this reason it isn't the main version on npm yet.
vue-component-type-helpers by @johnsoncodehk in https://github.com/vuejs/test-utils/pull/2026Full Changelog: https://github.com/vuejs/test-utils/compare/v2.3.2...v2.4.0-alpha.0
fix propsData deprecation suggestion by @dten in https://github.com/vuejs/test-utils/pull/2001
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.3.1...v2.3.2
docs(fr): french documentation and README.md by @antoinezanardi in https://github.com/vuejs/test-utils/pull/1975
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.3.0...v2.3.1
renderToString is merged for SSR testing, thanks to @wobsoriano and @cexbrayat!
renderToString is merged for SSR testing, thanks to @wobsoriano and @cexbrayat!
Full Changelog: https://github.com/vuejs/test-utils/compare/2.2.10...v2.3.0
fix: TS workaround for Vue v3.2.47 by @cexbrayat in https://github.com/vuejs/test-utils/pull/1962
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.9...2.2.10
chore(deps): update all non-major dependencies by @cexbrayat in https://github.com/vuejs/test-utils/pull/1951
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.8...v2.2.9
chore(deps): update dependency vue-tsc to v1.0.22 by @renovate in https://github.com/vuejs/test-utils/pull/1930
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.7...v2.2.8
fix: Differentiate script setup from option api component with setup by @renatodeleao in https://github.com/vuejs/test-utils/pull/1928
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.6...v2.2.7
fix: allow to use KeepAlive or keep-alive in stubs by @cexbrayat in https://github.com/vuejs/test-utils/pull/1892
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.5...v2.2.6
chore(deps): update dependency unplugin-vue-components to v0.22.11 by @renovate in https://github.com/vuejs/test-utils/pull/1881
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.4...v2.2.5
refactor: proper type for hasSetupState util function by @cexbrayat in https://github.com/vuejs/test-utils/pull/1865
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.3...v2.2.4
chore(deps): update vitest to v0.25.2 by @renovate in https://github.com/vuejs/test-utils/pull/1862
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.2...v2.2.3
fix(mount): correctly work with component throwing on mount by @xanf in https://github.com/vuejs/test-utils/pull/1845
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.1...v2.2.2
chore(deps): update dependency unplugin-vue-components to v0.22.9 by @renovate in https://github.com/vuejs/test-utils/pull/1828
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.2.0...v2.2.1
feat(setValue): allow array for multiselect .setValue() method by @freakzlike in https://github.com/vuejs/test-utils/pull/1825
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.1.0...v2.2.0
fix: keep Date objects on setData by @freakzlike in https://github.com/vuejs/test-utils/pull/1720
script setup component by @joeyhuang0235 in https://github.com/vuejs/test-utils/pull/1783Full Changelog: https://github.com/vuejs/test-utils/compare/v2.0.2...v2.1.0
fix: fix typo by @liuzhuan in https://github.com/vuejs/test-utils/pull/1608
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.0.1...v2.0.2
Test Utils is quite stable now, so most of the changes here are minor fixes.
Test Utils is quite stable now, so most of the changes here are minor fixes.
The next "big ticket" feature will be SSR support. You can track it here: https://github.com/vuejs/test-utils/pull/1572
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.0.0...v2.0.1
This is v2.0.0. The library is quite stable and there are not major bugs.
This is v2.0.0. The library is quite stable and there are not major bugs.
Full Changelog: https://github.com/vuejs/test-utils/compare/v2.0.0-rc.21...v2.0.0
This is the final release candidate, unless something major comes up. We will move to 2.0.0 next release.
This is the final release candidate, unless something major comes up. We will move to 2.0.0 next release.
fix: make imports in wrapperLike relative (again) by @catrope in https://github.com/vuejs/test-utils/pull/1401
shallowMount)Full Changelog: https://github.com/vuejs/test-utils/compare/v2.0.0-rc.19...v2.0.0-rc.20
Several fixes. We will move from release candidate soon, hopefully this will be the last release candidate, unless any bugs are reported!
Several fixes. We will move from release candidate soon, hopefully this will be the last release candidate, unless any bugs are reported!
feat: Add createStubs plugin hook feat: support custom class component
fix: added missing find overrides fix: support functional component props fix: do not match component name on getter that returns component fix: static imports fix: findAll root nodes when using render function fix: stop globalProperties config leak fix: add relative imports in wrapperLike interface fix: add methods from baseWrapper to the wrapperLike interface fix(type): add undefined type to attributes() for missing key #1398 fix(find): find element inside suspense with multi root elements #1397 fix(find): find and findAll should not find itself on DOM wrappers #1392
We are edging closer to a 2.0.0. This release contains many small fixes, mainly related to niche edge cases.
We are edging closer to a 2.0.0. This release contains many small fixes, mainly related to niche edge cases.
fix: stringify symbol props in stubs (#1086) fix: Remove methods key from mount (#1145) Fix: Use defaultName when it exists to correctly stub async components (#1136) fix(find): allow finding stubs by stub definition (#1113) fix(emitted): do not track native events on multi-root components (#1121) fix(html): ensure wrapper.html() works correctly for multi-root (#1120) fix(find): implement proper find for multi-root components (#1116) fix(find): do not find DOM node by ref if it is not inside element b118e9aa956a81997dc1276583c0f48c5a767387 fix(find): finding by ref may return Node, not just Element 125ea2fa6c0c757c0628f21aa1b1f60f996ca323
chore(findComponent): refactor find & findComponent (fixes #716, #899) chore(compat): Always treat legacy functional components as function bb44d9e4b92b852db7dc588c0d663f33739d41de
There is one minor breaking change that may impact people using shallowMount with snaphots, see #1066.
There is one minor breaking change that may impact people using shallowMount with snaphots, see #1066.
VueWrapper within a DOMWrapper using findComponentWe are getting near to a 2.0.0. Follow this thread for details.
We are getting near to a 2.0.0. Follow this thread for details.
The main feature here is the return of the ability to use findComponent with a DOM selector, for example findComponent('#some-id'). Read more here: https://github.com/vuejs/vue-test-utils-next/issues/689. Thanks @xanf and @cexbrayat for all the work!
This release improves support for , and updates the Vue version, ensuring everything continues working with the latest version of Vue.
This release improves support for <script setup>, and updates the Vue version, ensuring everything continues working with the latest version of Vue.
vm the same when using <script setup>A little controversial, the discussion is worth a look. Generally, you don't want to test or assert against values on vm, but rather the public API (usually the rendered DOM).
This release only has one user facing change.
This release only has one user facing change.
feat(find): allow chaining find with findComponent (#897)
This is huge release with many bug fixes. If this release breaks something for you, please file an issue.
This is huge release with many bug fixes. If this release breaks something for you, please file an issue.
The majority of this release was authored by @xanf - thank you for your ongoing efforts!
breaking: remove ability to use findComponent with DOM selector (#896)
Note: this may come back, it is an ongoing discussion. If you think it's important, you could make an issue. If you want to find a component, you generally can use findComponent or getComponent.
fix(find): allow finding root without name (#836) fix(slots): does not expose extra wrapper of slot content (#844) fix(mount): support passing data when immediate watchers are present #840 fix(findComponent): return root instance if it matches (#834) fix: do not crash findComponent if ref is pointing to html element (#817 … fix(stubs): Do not create stubs across multiple renders (#813) fix(stubs): Do not create stubs across multiple renders (#813) fix(compat): avoid warning about non-existing export fix: Always wrap string passed to slot in a helper component (#815) …
chore(types): improve types of vueWrapper (#823) … chore(types): add Array of strings as valid type for stubs chore(types): add proper type for propsDeclaration chore(types): improve global.stubs definition chore(types): remove unused props in StubOptions chore(stubs): simplify global stubs registration (#841) chore(find): simplify vnode traversal (#835) chore(deps): bump vue to 3.2 (#889)
Fix a bug in rc.11 where the types were not correctly shipped. It's not clear why this happened - our build/release process has not changed in a long
Fix a bug in rc.11 where the types were not correctly shipped. It's not clear why this happened - our build/release process has not changed in a long time. Apologies if you were on rc.11 and the types were not working as expected.
docs: update function name #789 docs: update url #776 docs: document .at deprecation #736 docs: remove useless import
This release is quite small; one fix, some refactors and some updates to docs.
fix(setData): do not concat previous and new array values #767
refactor: use jest.advanceTimersByTime in async test https://github.com/vuejs/vue-test-utils-next/pull/780 refactor: faster suspense test https://github.com/vuejs/vue-test-utils-next/pull/779
chore: remove volar workaround #760 chore: rename slot variables in tests #759 chore: migrate example to TS #758 chore: format vue files #757 chore: remove allowJs from TS config #743
docs: update function name #789
docs: update url #776
docs: document .at deprecation #736
docs: remove useless import (#735)
This is a big release with @xanf adding a lot of support for the Vue Compat build. We are now running against the latest Vue version (3.1.2).
This is a big release with @xanf adding a lot of support for the Vue Compat build. We are now running against the latest Vue version (3.1.2).
feat: support passing component with template to slots feat(compat): support legacy functional components (#703) feat(compat): correctly stub components, wrapped in Vue.extend feat: add @vue/compat initial support (#698)
fix(compat): do not stub legacy functional component root fix(compat): correctly render default slot in stub if requested (#717) fix: support passing functional components as stub implementation (#700) fix: Allow finding component by definition when using shallow mount (#696) fix: opt-out of stubbing by passing false as stub (#702) fix: do not stub slots content when using shallow mount (#697) fix: find component by its definition when using stub without name (#704 … fix(shallow): correctly stub anonymous components (#714) fix: findComponent should work using same stub for different components
docs: add example of passing object with template property to slot chore: improve typings of isComponent helpers chore: Remove outdated comments about template object support in slots
This reverts this change which was released in v2.0.0-rc.8, relating to the extension. See the PR for an extended discussion.
This reverts this change which was released in v2.0.0-rc.8, relating to the extension. See the PR for an extended discussion.
We will figure out the best approach to supporting the correct .mjs extension for Test Utils and the rest of the Vue core ecosystem prior to Vue 3.x becoming the main branch on npm.
## Features Fix broken module entry point.
Fix broken module entry point.
Many small bug fixes in this release. Please file an issue if you find a problem. We are nearing a 2.0.0 release.
Many small bug fixes in this release. Please file an issue if you find a problem. We are nearing a 2.0.0 release.
feat: array of slots (#599) feat: add isVisible to VueWrapper (#628)
fix: use .mjs extension for ESM bundles fix: capture emitted events from script setup components (#663) fix: use prefix identifiers for cjs build (#661) fix: Gracefully handle empty root node for nested component (#660) fix: better errors for async find (#641) fix: shallow config issue (#607) fix: shallowMount with stub props (#610) fix: use flushPromises from @vue/test-utils
chore: Add @vue/compiler-dom dep (#591)
## Fixes - emits can be an object
Lots of fixes. One breaking change around updating props for v-model. See #459 for the PR and #440 for the discussion and rationale.
Lots of fixes. One breaking change around updating props for v-model. See #459 for the PR and #440 for the discussion and rationale.
feat: make isVisible more comprehensive
This release includes a minor fix to work around a (internal only) breaking change in Vue 3.0.7.
This release includes a minor fix to work around a (internal only) breaking change in Vue 3.0.7.
fix: Added prop update on emit for v-model #393
fix a bug where events are incorrectly captured (@aethr, #354)
Minor bug fixes.
<script setup> for shallowMount (@rrittwag, #358)text() (@cexbrayat, #342)Things are quite stable at this point. It's unlikely the API will change any time soon. This release candidates marks the final transition towards a s
Things are quite stable at this point. It's unlikely the API will change any time soon. This release candidates marks the final transition towards a stable 2.0.
This fixes some edge cases, like capturing an emit event inside of setup prior to the component getting mounted.
The docs are now hosted in this repo, as opposed to a separate repo. They are built using Vitepress and deployed via Netlify. Thanks to @bencodezen and @afontcu for making this happen.
feat(types): infer options in plugins #282 by @posva feat: make jest debug in vscode available #284 by @HomyeeKing
feat(types): infer options in plugins #282 by @posva feat: make jest debug in vscode available #284 by @HomyeeKing
fix: render props in stubs #287 by @lmiller1990
ensure plugins receive options correctly #276 @lmiller1990 handle slots correctly #277
ensure plugins receive options correctly #276 @lmiller1990 handle slots correctly #277
fix mount infer prop type #274 @pikax uncommented new prop tests and add defaultProps to all mount #274 @pikax
This release adds support for the latest RFC. That's it. Read about it here: #264.
This release adds support for the latest <script setup> RFC. That's it. Read about it here: #264.
If you want to use it, you need Vue 3.0.3. You will also want the latest vue-jest (5.0.0 alpha 7 at the time of this). Get it with yarn add vue-jest@next. Note the latest RFC is here: https://github.com/vuejs/rfcs/pull/227
<script setup> (#264) by @lmiller1990Your coding agent can read these notes before it upgrades. Set up the MCP server →