import { screen } from '@testing-library/react';
import { renderWithProviders as render } from '../../../test/render';
import { describe, it, expect, vi } from 'vitest';
import { TemplatePage } from './TemplatePage';
import React from 'react';
import { LayoutProvider } from '../../../contexts/LayoutContext';
// Mock react-router
vi.mock('react-router-dom', () => ({
useLocation: () => ({ pathname: '/' }),
useNavigate: () => vi.fn(),
Link: ({ to, children, ...props }: any) => (
{children}
),
}));
// Mock assistant
vi.mock('../../assistant/xertica-assistant/xertica-assistant', () => ({
XerticaAssistant: () =>
Assistant
,
}));
// Mock navigation (moved from root routes.tsx)
vi.mock('../../shared/navigation', () => ({
routes: [],
getRouteByPath: vi.fn(path => ({ path, label: 'Test Route' })),
isValidRoute: vi.fn(() => true),
}));
// Mock AuthContext so the component can consume useAuth without a real provider
vi.mock('../../../contexts/AuthContext', () => ({
useAuth: () => ({
user: { email: 'user@example.com' },
isLoading: false,
login: vi.fn(),
logout: vi.fn(),
}),
}));
describe('TemplatePage', () => {
it('renders layout components correctly', () => {
render(
);
expect(screen.getByTestId('assistant')).toBeInTheDocument();
// Verification of Sidebar and Content
expect(document.querySelector('svg')).toBeInTheDocument();
});
});