diff --git a/app/[locale]/referenzen/[slug]/page.test.tsx b/app/[locale]/referenzen/[slug]/page.test.tsx new file mode 100644 index 000000000..8351231dc --- /dev/null +++ b/app/[locale]/referenzen/[slug]/page.test.tsx @@ -0,0 +1,38 @@ +import { describe, it, expect, vi } from 'vitest'; +import ReferenceDetail from './page'; + +// Mock next/navigation +vi.mock('next/navigation', () => ({ + notFound: vi.fn(), +})); + +// Mock next-intl/server +vi.mock('next-intl/server', () => ({ + setRequestLocale: vi.fn(), + getTranslations: vi.fn().mockResolvedValue(() => 'translated text'), +})); + +// Mock @/lib/references +vi.mock('@/lib/references', () => ({ + getReferenceBySlug: vi.fn().mockResolvedValue({ + slug: 'test-slug', + frontmatter: { + title: 'Test Title', + location: 'Test Location', + category: 'Test Category', + }, + content: 'Test content', + }), +})); + +describe('ReferenceDetail Page TDD', () => { + it('renders reference detail correctly', async () => { + const props = { + params: Promise.resolve({ locale: 'de', slug: 'test-slug' }) + }; + + // We expect the execution to fail if getTranslations is not defined/imported inside page.tsx + const component = await ReferenceDetail(props); + expect(component).toBeTruthy(); + }); +}); diff --git a/app/[locale]/referenzen/[slug]/page.tsx b/app/[locale]/referenzen/[slug]/page.tsx index a4e10e6a7..2858825d1 100644 --- a/app/[locale]/referenzen/[slug]/page.tsx +++ b/app/[locale]/referenzen/[slug]/page.tsx @@ -1,6 +1,6 @@ import { notFound } from 'next/navigation'; import { Container, Badge, Heading } from '@/components/ui'; -import { setRequestLocale } from 'next-intl/server'; +import { setRequestLocale, getTranslations } from 'next-intl/server'; import { Metadata } from 'next'; import { getReferenceBySlug, getAllReferences } from '@/lib/references'; import { MDXRemote } from 'next-mdx-remote/rsc'; diff --git a/components/search/AISearchResults.test.tsx b/components/search/AISearchResults.test.tsx new file mode 100644 index 000000000..f97d06cd0 --- /dev/null +++ b/components/search/AISearchResults.test.tsx @@ -0,0 +1,61 @@ +import * as React from 'react'; +import { describe, it, expect, vi } from 'vitest'; +import { render } from '@testing-library/react'; +import { AISearchResults } from './AISearchResults'; + +// Mock lucide-react +vi.mock('lucide-react', () => ({ + ArrowUp: () =>
, + X: () => , + Sparkles: () => , + ChevronRight: () => , + RotateCcw: () => , + Copy: () => , + Check: () => , +})); + +// Mock next/link +vi.mock('next/link', () => ({ + default: ({ children, href }: any) => {children}, +})); + +// Mock useAnalytics +vi.mock('../analytics/useAnalytics', () => ({ + useAnalytics: () => ({ + trackEvent: vi.fn(), + }), +})); + +// Mock react-markdown +vi.mock('react-markdown', () => ({ + default: ({ children }: any) =>