Мок route в Vitest

Использую Vue, vitest. Необходимо замокать route для каждого теста отдельно, чтобы не перезатирался.

const isRouteChat = computed(() => route?.path == '/chat');
vi.mock('vue-router');
describe('LayoutHeader.vue', () => {
 let wrapper;
 let vm;

 beforeEach(() => {
     const pinia = createTestingPinia({
        createSpy: vi.fn,
     });
     wrapper = shallowMount(ChatPage, {
        global: {
         plugins: [pinia],
        },
     });
     vm = wrapper.vm;
 });
 afterEach(() => {
  wrapper.unmount();
  vi.resetAllMocks();
 });
 it('isRouteChat', () => {
     useRoute.mockReturnValue({ path: '/chat' });

     expect(vm.isRouteChat).toBeTruthy();
 });
})

В данном случае, я мокаю route и тест проходит. Но если я добавлю ещё один тест, но с другим моком:

 it('isRouteChat', () => {
     useRoute.mockReturnValue({ path: '/another' });

     expect(vm.isRouteChat).toBeTruthy();
 });

Тут route будет undefined, и мокирование не изолируется между тестами. Необходимо, чтобы каждый тест мог независимо задать свой мок route, без влияния на другие.


Ответы (0 шт):