Я реализовал средство защиты маршрута для защиты маршрута /settings
с помощью метода vue-router beforeEnter()
.
Я пытаюсь проверить, что маршрут защищен только для администраторов .
Я использую Vuejs 2, Vue-router, Vuex и vue-test-utils.
router.js
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
export default new Router({
routes: [
..., // other routes
{
path: '/settings',
name: 'Settings',
component: () => import('./views/settings'),
beforeEnter: (to, from, next) => {
next(store.state.isAdmin);
}
}
]
});
the модульный тест :
test('navigates to /settings view if the user is admin', () => {
const localVue = createLocalVue();
localVue.use(Vuex);
localVue.use(VueRouter);
const router = new VueRouter();
const wrapper = shallowMount(App, {
stubs: ['router-link', 'router-view'],
localVue,
mocks: {
$store: store
},
router
});
wrapper.vm.$route.push({ path: '/settings' });
// test if route is set correctly
});
вывод текущих журналов:
wrapper.vm. $ Route` не определено.
Как правильно установить приложение и получить доступ к маршрутизатору? Как я могу проверить текущий маршрут, чтобы убедиться, что администратор успешно перенаправлен?