// File: frontend/components/layout/__tests__/header.test.tsx
// Change Log
// - 2026-06-13: Add coverage for Header composition.
import { render, screen } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';
import { Header } from '../header';
vi.mock('../user-menu', () => ({ UserMenu: () =>
User menu
}));
vi.mock('../global-search', () => ({ GlobalSearch: () => }));
vi.mock('../notifications-dropdown', () => ({ NotificationsDropdown: () => }));
vi.mock('../sidebar', () => ({ MobileSidebar: () => }));
vi.mock('../theme-toggle', () => ({ ThemeToggle: () => }));
vi.mock('../project-switcher', () => ({ ProjectSwitcher: () => }));
describe('Header', () => {
it('renders application title and composed controls', () => {
render();
expect(screen.getByText('LCBP3-DMS')).toBeInTheDocument();
expect(screen.getByLabelText('Search')).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Mobile sidebar' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Project' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Theme' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: 'Notifications' })).toBeInTheDocument();
expect(screen.getByText('User menu')).toBeInTheDocument();
});
});