File size: 1,236 Bytes
60b6623
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { render, screen } from '@testing-library/react'
import { describe, it, expect, vi } from 'vitest'
import HeaderNav from '../../components/HeaderNav'

// Mock react-router-dom
vi.mock('react-router-dom', () => ({
  useLocation: () => ({ pathname: '/' }),
  useNavigate: () => vi.fn(),
  Link: ({ children, to }: { children: React.ReactNode; to: string }) => (
    <a href={to}>{children}</a>
  ),
}))

describe('HeaderNav', () => {
  it('renders without crashing', () => {
    render(<HeaderNav />)
    const navElements = screen.getAllByRole('navigation')
    expect(navElements.length).toBeGreaterThan(0)
  })

  it('contains navigation links', () => {
    render(<HeaderNav />)
    expect(screen.getByText(/explore/i)).toBeInTheDocument()
    expect(screen.getByText(/analytics/i)).toBeInTheDocument()
    expect(screen.getByText(/upload/i)).toBeInTheDocument()
  })

  it('displays the PromptAid Vision title', () => {
    render(<HeaderNav />)
    expect(screen.getByText('PromptAid Vision')).toBeInTheDocument()
  })

  it('contains help and dev buttons', () => {
    render(<HeaderNav />)
    expect(screen.getByText(/help & support/i)).toBeInTheDocument()
    expect(screen.getByText(/dev/i)).toBeInTheDocument()
  })
})