From 045e6976ccd64163de2800592024bd42645f501a Mon Sep 17 00:00:00 2001 From: mnenie <121057011+mneniee@users.noreply.github.com> Date: Sun, 25 Aug 2024 23:33:54 +0300 Subject: [PATCH] feat: add vitest-utils, resolves: #27 --- .../board/ui/__tests__/BoardPreviewCard.spec.ts | 13 +------------ .../board/ui/__tests__/ColumnItem.spec.ts | 15 +++------------ src/entities/chart/ui/__tests__/ChartItem.spec.ts | 15 +++------------ .../template/ui/__tests__/TemplateItem.spec.ts | 13 ++----------- .../ui/__tests__/LanguageSwitcher.spec.ts | 15 +++------------ .../ui/__tests__/ThemeSwitcher.spec.ts | 11 +---------- src/shared/lib/vitest-utils/cookiesI18n-mock.ts | 11 +++++++++++ .../ui/footer/__tests__/FooterWelcome.spec.ts | 15 +++------------ .../ui/header/__tests__/HeaderWelcome.spec.ts | 13 ++----------- .../layout/ui/header/__tests__/UserMenu.spec.ts | 13 ++----------- .../layout/ui/sidebar/__tests__/WorkSpace.spec.ts | 15 +++------------ 11 files changed, 34 insertions(+), 115 deletions(-) create mode 100644 src/shared/lib/vitest-utils/cookiesI18n-mock.ts diff --git a/src/entities/board/ui/__tests__/BoardPreviewCard.spec.ts b/src/entities/board/ui/__tests__/BoardPreviewCard.spec.ts index e68aaeec..01272cf2 100644 --- a/src/entities/board/ui/__tests__/BoardPreviewCard.spec.ts +++ b/src/entities/board/ui/__tests__/BoardPreviewCard.spec.ts @@ -1,20 +1,9 @@ import { describe, it, expect, vi } from 'vitest'; import { mount } from '@vue/test-utils'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; import BoardPreviewCard from '../BoardPreviewCard.vue'; -// TODO: think about putting this mock in /shared/vitest-utils maybe -// so, the problem - is often used in many tests -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get: (key: string) => { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); - const mockRouter = { push: vi.fn(), beforeEach: vi.fn() diff --git a/src/entities/board/ui/__tests__/ColumnItem.spec.ts b/src/entities/board/ui/__tests__/ColumnItem.spec.ts index 2e27509d..a24a37fe 100644 --- a/src/entities/board/ui/__tests__/ColumnItem.spec.ts +++ b/src/entities/board/ui/__tests__/ColumnItem.spec.ts @@ -1,17 +1,8 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { mount } from '@vue/test-utils'; -import ColumnItem from '../ColumnItem.vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; - -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get(key: string) { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); +import ColumnItem from '../ColumnItem.vue'; describe('tests for ColumnItem.vue', () => { const wrapper = mount(ColumnItem, { diff --git a/src/entities/chart/ui/__tests__/ChartItem.spec.ts b/src/entities/chart/ui/__tests__/ChartItem.spec.ts index b0010ccd..13256e3d 100644 --- a/src/entities/chart/ui/__tests__/ChartItem.spec.ts +++ b/src/entities/chart/ui/__tests__/ChartItem.spec.ts @@ -1,18 +1,9 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, it, expect } from 'vitest'; import { shallowMount } from '@vue/test-utils'; -import ChartItem from '../ChartItem.vue'; import { defineComponent, h } from 'vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; - -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get(key: string) { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); +import ChartItem from '../ChartItem.vue'; const TestChartComponent = defineComponent({ render() { diff --git a/src/entities/template/ui/__tests__/TemplateItem.spec.ts b/src/entities/template/ui/__tests__/TemplateItem.spec.ts index 1a6cf1ec..603e6550 100644 --- a/src/entities/template/ui/__tests__/TemplateItem.spec.ts +++ b/src/entities/template/ui/__tests__/TemplateItem.spec.ts @@ -1,19 +1,10 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, it, expect } from 'vitest'; import { shallowMount } from '@vue/test-utils'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; import TemplateItem from '../TemplateItem.vue'; import { _templates } from '../../config'; -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get(key: string) { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); - describe('tests for TemplateItem.vue ', () => { const wrapper = shallowMount(TemplateItem, { global: { diff --git a/src/features/settings/lang-switcher/ui/__tests__/LanguageSwitcher.spec.ts b/src/features/settings/lang-switcher/ui/__tests__/LanguageSwitcher.spec.ts index e7306f8d..95ec941d 100644 --- a/src/features/settings/lang-switcher/ui/__tests__/LanguageSwitcher.spec.ts +++ b/src/features/settings/lang-switcher/ui/__tests__/LanguageSwitcher.spec.ts @@ -1,21 +1,12 @@ import { mount } from '@vue/test-utils'; import { describe, it, expect, vi } from 'vitest'; -import LanguageSwitcher from '../LanguageSwitcher.vue'; -import i18n from '@/shared/lib/i18n'; import { nextTick, ref, shallowReactive } from 'vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; +import i18n from '@/shared/lib/i18n'; +import LanguageSwitcher from '../LanguageSwitcher.vue'; import { useLanguage } from '@/shared/lib/composables'; import { useI18n } from 'vue-i18n'; -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get(key: string) { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); - vi.mock('vue-i18n', async (importOriginal) => { const actual = await importOriginal(); return { diff --git a/src/features/settings/theme-switcher/ui/__tests__/ThemeSwitcher.spec.ts b/src/features/settings/theme-switcher/ui/__tests__/ThemeSwitcher.spec.ts index d9f4581b..8186f66a 100644 --- a/src/features/settings/theme-switcher/ui/__tests__/ThemeSwitcher.spec.ts +++ b/src/features/settings/theme-switcher/ui/__tests__/ThemeSwitcher.spec.ts @@ -1,6 +1,7 @@ import { describe, it, expect, vi } from 'vitest'; import { mount } from '@vue/test-utils'; import { ref, shallowRef } from 'vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import useTheme from '../../lib/composables/useTheme'; import ThemeSwitcher from '../ThemeSwitcher.vue'; import i18n from '@/shared/lib/i18n'; @@ -11,16 +12,6 @@ vi.mock('@vueuse/core', () => ({ })) })); -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get(key: string) { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); - describe('tests for ThemeSwitcher.vue', () => { const wrapper = mount(ThemeSwitcher, { global: { diff --git a/src/shared/lib/vitest-utils/cookiesI18n-mock.ts b/src/shared/lib/vitest-utils/cookiesI18n-mock.ts new file mode 100644 index 00000000..2dba58f5 --- /dev/null +++ b/src/shared/lib/vitest-utils/cookiesI18n-mock.ts @@ -0,0 +1,11 @@ +import { vi } from 'vitest'; + +vi.mock('@vueuse/integrations/useCookies', () => { + return { + useCookies: () => ({ + get(key: string) { + return key === 'i18n' ? 'en-US' : undefined; + } + }) + }; +}); diff --git a/src/widgets/layout/ui/footer/__tests__/FooterWelcome.spec.ts b/src/widgets/layout/ui/footer/__tests__/FooterWelcome.spec.ts index ede2e038..40108d01 100644 --- a/src/widgets/layout/ui/footer/__tests__/FooterWelcome.spec.ts +++ b/src/widgets/layout/ui/footer/__tests__/FooterWelcome.spec.ts @@ -1,17 +1,8 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, it, expect } from 'vitest'; import { shallowMount } from '@vue/test-utils'; -import FooterWelcome from '../AppFooter.vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; - -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get: (key: string) => { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); +import FooterWelcome from '../AppFooter.vue'; describe('tests for FooterWelcome.vue', () => { const wrapper = shallowMount(FooterWelcome, { diff --git a/src/widgets/layout/ui/header/__tests__/HeaderWelcome.spec.ts b/src/widgets/layout/ui/header/__tests__/HeaderWelcome.spec.ts index 71b94ab2..1ceaac80 100644 --- a/src/widgets/layout/ui/header/__tests__/HeaderWelcome.spec.ts +++ b/src/widgets/layout/ui/header/__tests__/HeaderWelcome.spec.ts @@ -1,20 +1,11 @@ import { mount } from '@vue/test-utils'; import { describe, it, expect, vi } from 'vitest'; +import { nextTick } from 'vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import HeaderWelcome from '../HeaderWelcome.vue'; import i18n from '@/shared/lib/i18n'; import { UiButton, UiSelect } from '@/shared/ui'; import { Moon, Sun } from 'lucide-vue-next'; -import { nextTick } from 'vue'; - -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get: (key: string) => { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); const mockRouter = { push: vi.fn(), diff --git a/src/widgets/layout/ui/header/__tests__/UserMenu.spec.ts b/src/widgets/layout/ui/header/__tests__/UserMenu.spec.ts index 97a38576..956dd65e 100644 --- a/src/widgets/layout/ui/header/__tests__/UserMenu.spec.ts +++ b/src/widgets/layout/ui/header/__tests__/UserMenu.spec.ts @@ -1,20 +1,11 @@ import { describe, it, expect, vi } from 'vitest'; import { mount } from '@vue/test-utils'; import { nextTick } from 'vue'; -import UserMenu from '../UserMenu.vue'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; import i18n from '@/shared/lib/i18n'; +import UserMenu from '../UserMenu.vue'; import { UiDropdownItem } from '@/shared/ui'; -vi.mock('@vueuse/integrations/useCookies', () => { - return { - useCookies: () => ({ - get: (key: string) => { - return key === 'i18n' ? 'en-US' : undefined; - } - }) - }; -}); - const mockRouter = { push: vi.fn(), beforeEach: vi.fn() diff --git a/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts b/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts index 6960ca35..544bda76 100644 --- a/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts +++ b/src/widgets/layout/ui/sidebar/__tests__/WorkSpace.spec.ts @@ -1,24 +1,15 @@ import { describe, it, expect, vi } from 'vitest'; import { mount, RouterLinkStub } from '@vue/test-utils'; +import { h } from 'vue'; +import { useRoute } from 'vue-router'; +import '@/shared/lib/vitest-utils/cookiesI18n-mock'; 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({