El currentRoute.path del enrutador debe ser /SignUpUser ya que esa es la página que importo y su ruta es /SignUpUser . Sin embargo, la path resulta ser root .
Este es el código:
import SignUpUser from '@/components/SignForms/SignUpUser.vue' const localVue = createLocalVue() localVue.use(VueRouter) it('does not route to root when sign up is interrupted because validations fail', async () => { let router = new VueRouter() const wrapper = mount(SignUpUser, { localVue, router, }) console.log(router.currentRoute.path) // should be '/SignUpUser' but is '/' let usernameField = wrapper.findComponent('#username'); usernameField.setValue('Avi') let submitBtn = wrapper.findComponent('button') await submitBtn.trigger('click'); expect(router.currentRoute.path).toBe('/SignUpUser') }) Además, expect(router.currentRoute.path).toBe('/SignUpUser') falla porque la ruta sigue siendo / . No estoy seguro de lo que está sucediendo y realmente me vendría bien un poco de ayuda.
Cuando se realiza una prueba unitaria de un componente vue, debe configurarlo todo: no se usará nada de su aplicación real.
Eso significa que la configuración de routes de su aplicación no se usa aquí. Entonces, está utilizando un VueRouter sin ninguna configuración de rutas.
Simplemente agregue una configuración de rutas de prueba (consulte la documentación ):
it('should redirect to /SignUpUser page', () => { const routes = [ { path: '/', component: { template: 'Root' } }, { path: '/SignUpUser', component: SignUpUser } ]; let router = new VueRouter({ routes }) router.push('/SignUpUser') // You are now on /SignUpUser const wrapper = mount(SignUpUser, { localVue, router, }) })Tenga en cuenta que significa que su prueba en realidad probará un enrutador simulado, y no tiene mucho sentido verificar que en esta ruta (que usted mismo configuró en la prueba) monte este componente.