nav-menu.test.tsx36 lines · main
| 1 | import { render, screen } from '@testing-library/react' |
| 2 | import React from 'react' |
| 3 | import { describe, expect, it } from 'vitest' |
| 4 | |
| 5 | import { NavMenu, NavMenuItem } from './index' |
| 6 | |
| 7 | describe('NavMenu Component', () => { |
| 8 | it('renders without crashing', () => { |
| 9 | render(<NavMenu />) |
| 10 | expect(screen.getByRole('navigation')).toBeInTheDocument() |
| 11 | }) |
| 12 | |
| 13 | it('applies custom className', () => { |
| 14 | const className = 'test-class' |
| 15 | render(<NavMenu className={className} />) |
| 16 | expect(screen.getByRole('navigation')).toHaveClass(className) |
| 17 | }) |
| 18 | |
| 19 | it('forwards ref', () => { |
| 20 | const ref = React.createRef<HTMLDivElement>() |
| 21 | |
| 22 | render(<NavMenu ref={ref}>test</NavMenu>) |
| 23 | expect(ref.current).toBeInTheDocument() |
| 24 | }) |
| 25 | |
| 26 | it('renders children', () => { |
| 27 | render( |
| 28 | <NavMenu> |
| 29 | <NavMenuItem active={false}> |
| 30 | <span>Home</span> |
| 31 | </NavMenuItem> |
| 32 | </NavMenu> |
| 33 | ) |
| 34 | expect(screen.getByText('Home')).toBeInTheDocument() |
| 35 | }) |
| 36 | }) |