import { ReactNode } from 'react' import { describe, it, expect, vi } from 'vitest' import { render, screen } from '@testing-library/react' import { BrowserRouter } from 'react-router-dom' import Layout from '../Layout' import { ThemeProvider } from '../../context/ThemeContext' // Mock AuthContext vi.mock('../../context/AuthContext', () => ({ useAuth: () => ({ logout: vi.fn(), }), })) const renderWithProviders = (children: ReactNode) => { return render( {children} ) } describe('Layout', () => { it('renders the application title', () => { renderWithProviders(
Test Content
) expect(screen.getAllByText('CPM+')[0]).toBeInTheDocument() }) it('renders all navigation items', () => { renderWithProviders(
Test Content
) expect(screen.getByText('Dashboard')).toBeInTheDocument() expect(screen.getByText('Proxy Hosts')).toBeInTheDocument() expect(screen.getByText('Remote Servers')).toBeInTheDocument() expect(screen.getByText('Certificates')).toBeInTheDocument() expect(screen.getByText('Import Caddyfile')).toBeInTheDocument() expect(screen.getByText('Settings')).toBeInTheDocument() }) it('renders children content', () => { renderWithProviders(
Test Content
) expect(screen.getByTestId('test-content')).toBeInTheDocument() }) it('displays version information', () => { renderWithProviders(
Test Content
) expect(screen.getByText('Version 0.1.0')).toBeInTheDocument() }) })