Skip to content

Instantly share code, notes, and snippets.

@LazyFatArrow
Created February 12, 2023 12:33
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LazyFatArrow/8eaf0e7b1ef0af9b515a2a2d79e3188e to your computer and use it in GitHub Desktop.
Save LazyFatArrow/8eaf0e7b1ef0af9b515a2a2d79e3188e to your computer and use it in GitHub Desktop.
Mock vue router userRouter with Vitest and Typescript
import { shallowMount } from '@vue/test-utils'
import { beforeEach, describe, test, vi, expect } from 'vitest'
import { useRouter } from 'vue-router'
import { RouteNames, router } from '../../router/router'
import Home from './Home.vue'
vi.mock('vue-router')
describe('Home', () => {
vi.mocked(useRouter).mockReturnValue({
...router,
push: vi.fn()
})
beforeEach(() => {
vi.mocked(useRouter().push).mockReset()
})
test(`navigates to ${RouteNames.GREETING} route and sets query parameter name equal to 'John Doe'`, async () => {
const wrapper = shallowMount(Home)
await wrapper.find('button').trigger('click')
expect(useRouter().push).toHaveBeenCalledWith({
name: RouteNames.GREETING,
query: {
name: 'John Doe',
},
})
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment