Skip to content

Commit

Permalink
feat: add workspace tests, chore: update router
Browse files Browse the repository at this point in the history
  • Loading branch information
mnenie committed Aug 21, 2024
1 parent e2c2702 commit c068207
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/app/providers/router/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ const routes = [
component: () => import('@/pages/NotFoundPage.vue'),
meta: {
layout: LayoutsEnum.auth,
requiresAuth: true
requiresAuth: false
}
}
] satisfies readonly RouterRecord[];
Expand Down
61 changes: 61 additions & 0 deletions src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { describe, it, expect, vi } from 'vitest';
import { mount, RouterLinkStub } from '@vue/test-utils';
import WorkSpace from '../WorkSpace.vue';
import i18n from '@/shared/lib/i18n';
import { RouteNames } from '@/shared/config/consts';
import { h } from 'vue';
import { SquareDashedKanban } from 'lucide-vue-next';
import { useRoute } from 'vue-router';

vi.mock('vue-router');

vi.mock('@vueuse/integrations/useCookies', () => {
return {
useCookies: () => ({
get(key: string) {
return key === 'i18n' ? 'en-US' : undefined;
}
})
};
});

describe('tests for WorkSpace.vue', () => {
//@ts-expect-error mock types
useRoute.mockReturnValue({
name: RouteNames.boards
});
const wrapper = mount(WorkSpace, {
global: {
plugins: [i18n],
mocks: {
t: (key: string) => {
const translations: Record<string, string> = {
'sidebar.boards': 'boards',
'sidebar.section': 'workspace'
};
return translations[key];
}
},
stubs: {
RouterLink: RouterLinkStub
},
directives: {
tooltip() {}
}
},
props: {
isExpanded: true,
links: [{ id: 0, title: 'boards', pathName: RouteNames.boards, icon: h(SquareDashedKanban) }]
}
});

it('should be render correctly', () => {
expect(wrapper.html()).toMatchSnapshot();
});

it('should be redirect with RouterLink correctly', () => {
expect(wrapper.findComponent(RouterLinkStub).props('to')).toEqual({
name: RouteNames.boards
});
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`tests for WorkSpace.vue > should be render correctly 1`] = `
"<p class="name_block text-sm">workspace</p>
<div class="sidebar_main_links"><a class="link"><button class="text-sm button secondary md link_btn"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="rgb(82 82 91 / 0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-dashed-kanban-icon">
<path d="M8 7v7"></path>
<path d="M12 7v4"></path>
<path d="M16 7v9"></path>
<path d="M5 3a2 2 0 0 0-2 2"></path>
<path d="M9 3h1"></path>
<path d="M14 3h1"></path>
<path d="M19 3a2 2 0 0 1 2 2"></path>
<path d="M21 9v1"></path>
<path d="M21 14v1"></path>
<path d="M21 19a2 2 0 0 1-2 2"></path>
<path d="M14 21h1"></path>
<path d="M9 21h1"></path>
<path d="M5 21a2 2 0 0 1-2-2"></path>
<path d="M3 14v1"></path>
<path d="M3 9v1"></path>
</svg><span class="text-sm">boards</span></button></a></div>"
`;

0 comments on commit c068207

Please sign in to comment.