import React from 'react';
import { render, screen } from '@testing-library/react';
import { MemoryRouter } from 'react-router-dom';
import Layout from './Layout';
// Mock the AuthContext
const mockUseAuth = {
  user: {
    id: '1',
    firstName: 'John',
    lastName: 'Doe',
    email: 'john@example.com',
    role: 'candidate'
  },
  logout: jest.fn()
};
jest.mock('../contexts/AuthContext', () => ({
  useAuth: () => mockUseAuth
}));
// Mock react-router-dom
jest.mock('react-router-dom', () => ({
  ...jest.requireActual('react-router-dom'),
  useLocation: () => ({ pathname: '/dashboard' }),
  Link: ({ children, to }) => {children},
  Outlet: () => 
Outlet
}));
describe('Layout', () => {
  const renderLayout = () => {
    return render(
      
        
      
    );
  };
  it('renders the layout with user information', () => {
    renderLayout();
    expect(screen.getAllByText('MerchantsOfHope-SupplyANdDemandPortal').length).toBeGreaterThan(0);
    expect(screen.getAllByText('John Doe').length).toBeGreaterThan(0);
    expect(screen.getAllByText('candidate').length).toBeGreaterThan(0);
  });
  it('renders navigation items for candidate role', () => {
    renderLayout();
    expect(screen.getAllByText('Dashboard').length).toBeGreaterThan(0);
    expect(screen.getAllByText('Jobs').length).toBeGreaterThan(0);
    expect(screen.getAllByText('Applications').length).toBeGreaterThan(0);
    expect(screen.getAllByText('Resumes').length).toBeGreaterThan(0);
  });
  it('renders logout button', () => {
    renderLayout();
    expect(screen.getByRole('button', { name: /logout/i })).toBeInTheDocument();
  });
});