{"id":28451,"library":"vue-test-helpers","title":"vue-test-helpers","description":"Helpers and syntactic sugars on top of @vue/test-utils v1 (beta). v2.0.0 provides global registration of mount/shallowMount, and extends Wrapper with methods like has, hasAll, hasAny, hasNone, hasClass, hasAttribute, hasProp, hasEmitted, id, and event triggers (click, dblclick, etc.) with chaining. Designed for Vue 2 projects using vue-test-utils beta; not compatible with Vue 3 or @vue/test-utils v2. Low maintenance cadence, last release 2019.","status":"maintenance","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/phanan/vue-test-helpers","tags":["javascript","vue","test","testing","unit test","helpers"],"install":[{"cmd":"npm install vue-test-helpers","lang":"bash","label":"npm"},{"cmd":"yarn add vue-test-helpers","lang":"bash","label":"yarn"},{"cmd":"pnpm add vue-test-helpers","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: provides mount, shallowMount, and Wrapper prototype that helpers extend.","package":"@vue/test-utils","optional":false}],"imports":[{"note":"Package uses ESM default export; CommonJS require works if your environment supports it, but ESM is preferred.","wrong":"const setupHelpers = require('vue-test-helpers')","symbol":"setupHelpers (default export)","correct":"import setupHelpers from 'vue-test-helpers'"},{"note":"mount is re-exported globally from @vue/test-utils by setupHelpers(), but not exported from the package itself. Don't import from this package.","wrong":"import { mount } from 'vue-test-helpers'","symbol":"mount (global after setup)","correct":"// after import setupHelpers from 'vue-test-helpers'; setupHelpers() // mount is now globally available"},{"note":"shallow is an alias for shallowMount made global by setupHelpers(). Not a direct export.","wrong":"import { shallow } from 'vue-test-helpers'","symbol":"shallow (global after setup, alias for shallowMount)","correct":"// after setupHelpers(), shallow is globally available"}],"quickstart":{"code":"// Install: npm install --save-dev vue-test-helpers @vue/test-utils@^1.0.0-beta.20\n// Setup file (e.g., jest setupFilesAfterEnv):\nimport setupHelpers from 'vue-test-helpers';\nsetupHelpers();\n\n// In test:\nimport { shallowMount } from '@vue/test-utils'; // or use global mount/shallow\nimport MyComponent from './MyComponent.vue';\n\ndescribe('MyComponent', () => {\n  it('has a button with class primary', () => {\n    const wrapper = shallowMount(MyComponent);\n    expect(wrapper.find('button').hasClass('primary')).toBe(true);\n  });\n\n  it('emits click event', () => {\n    const wrapper = shallowMount(MyComponent);\n    wrapper.find('button').click();\n    expect(wrapper.hasEmitted('click')).toBe(true);\n  });\n\n  it('has prop foo with value bar', () => {\n    const wrapper = shallowMount(MyComponent, { propsData: { foo: 'bar' } });\n    expect(wrapper.hasProp('foo', 'bar')).toBe(true);\n  });\n});\n","lang":"javascript","description":"Shows global setup and usage of hasClass, hasEmitted, hasProp, and event triggers."},"warnings":[{"fix":"Use vue-test-helpers with Vue 2 and @vue/test-utils@^1.0.0-beta.20. For Vue 3, use @vue/test-utils v2 directly.","message":"Package targets @vue/test-utils v1 beta only. Not compatible with @vue/test-utils v2 (Vue 3).","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Consider using vue-test-utils' built-in alternatives like classes() or attributes() for cross-version compatibility.","message":"hasClass, hasAttribute, and hasProp are reimplementations of deprecated methods from vue-test-utils. They may be removed in future vue-test-utils v1 releases.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Call setupHelpers({ registerGlobals: false }) and import from '@vue/test-utils' manually.","message":"Global registration of mount and shallowMount via setupHelpers can cause conflicts if tests import them explicitly.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"npm install --save-dev @vue/test-utils@^1.0.0-beta.20","cause":"Missing peer dependency.","error":"Cannot find module '@vue/test-utils'"},{"fix":"Ensure setupHelpers() is called in test setup (e.g., Jest's setupFilesAfterEnv).","cause":"setupHelpers() not called before test or helpers not applied.","error":"TypeError: wrapper.hasClass is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}