From c068207459eabf44a86d490662694d1d4a650c63 Mon Sep 17 00:00:00 2001 From: mnenie <121057011+mneniee@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:53:01 +0300 Subject: [PATCH] feat: add workspace tests, chore: update router --- src/app/providers/router/index.ts | 2 +- .../ui/sidebar/__tests__/WorkSpace.spec.ts | 61 +++++++++++++++++++ .../__snapshots__/WorkSpace.spec.ts.snap | 22 +++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts create mode 100644 src/widgets/layout/ui/sidebar/__tests__/__snapshots__/WorkSpace.spec.ts.snap diff --git a/src/app/providers/router/index.ts b/src/app/providers/router/index.ts index 2fd6211..a97ee35 100644 --- a/src/app/providers/router/index.ts +++ b/src/app/providers/router/index.ts @@ -91,7 +91,7 @@ const routes = [ component: () => import('@/pages/NotFoundPage.vue'), meta: { layout: LayoutsEnum.auth, - requiresAuth: true + requiresAuth: false } } ] satisfies readonly RouterRecord[]; diff --git a/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts b/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts new file mode 100644 index 0000000..6960ca3 --- /dev/null +++ b/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts @@ -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 = { + '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 + }); + }); +}); diff --git a/src/widgets/layout/ui/sidebar/__tests__/__snapshots__/WorkSpace.spec.ts.snap b/src/widgets/layout/ui/sidebar/__tests__/__snapshots__/WorkSpace.spec.ts.snap new file mode 100644 index 0000000..b35c421 --- /dev/null +++ b/src/widgets/layout/ui/sidebar/__tests__/__snapshots__/WorkSpace.spec.ts.snap @@ -0,0 +1,22 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`tests for WorkSpace.vue > should be render correctly 1`] = ` +"

workspace

+" +`;