You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP

vitest-browser-vue

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vitest-browser-vue

Render Vue components in Vitest Browser Mode

1.0.0
latest
Version published
Weekly downloads
12K
-6.95%
Maintainers
1
Weekly downloads
 
Created

vitest-browser-vue

Render Vue components in Vitest Browser Mode. This library follows testing-library principles and exposes only locators and utilities that encourage you to write tests that closely resemble how your Vue components are used.

Requires vitest and @vitest/browser 2.1.0 or higher.

import { render } from 'vitest-browser-vue'
import { expect, test } from 'vitest'

test('counter button increments the count', async () => {
  const screen = render(Component, {
    props: {
      initialCount: 1,
    }
  })

  await screen.getByRole('button', { name: 'Increment' }).click()

  await expect.element(screen.getByText('Count is 2')).toBeVisible()
})

vitest-browser-vue also automatically injects render and cleanup methods on the page. Example:

// vitest.config.ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    // if the types are not picked up, add `vitest-browser-vue` to
    // "compilerOptions.types" in your tsconfig or
    // import `vitest-browser-vue` manually so TypeScript can pick it up
    setupFiles: ['vitest-browser-vue'],
    browser: {
      name: 'chromium',
      enabled: true,
    },
  },
})
import { page } from '@vitest/browser/context'

test('counter button increments the count', async () => {
  const screen = page.render(Component, {
    props: {
      initialCount: 1,
    }
  })

  screen.cleanup()
})

Unlike @testing-library/vue, vitest-browser-vue cleans up the component before the test starts instead of after, so you can see the rendered result in your UI. To avoid auto-cleanup, import the render function from vitest-browser-vue/pure.

Configuration

You can change the global configuration by modifying the config export. You can import it from both vitest-browser-vue and vitest-browser-vue/pure. See documentation.

import { config } from 'vitest-browser-vue'

config.global.mocks = {
  $t: text => text
}

Special thanks

FAQs

Package last updated on 24 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts