import React from 'react'; import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import { AuthFooterLinks } from './AuthFooterLinks'; describe('AuthFooterLinks', () => { describe('rendering', () => { it('should render with single child', () => { render( Forgot password? ); expect(screen.getByText('Forgot password?')).toBeInTheDocument(); }); it('should render with multiple children', () => { render( Forgot password? Create account Help ); expect(screen.getByText('Forgot password?')).toBeInTheDocument(); expect(screen.getByText('Create account')).toBeInTheDocument(); expect(screen.getByText('Help')).toBeInTheDocument(); }); it('should render with button children', () => { render( ); expect(screen.getByText('Back')).toBeInTheDocument(); expect(screen.getByText('Continue')).toBeInTheDocument(); }); it('should render with mixed element types', () => { render( Forgot password? Need help? ); expect(screen.getByText('Forgot password?')).toBeInTheDocument(); expect(screen.getByText('Back')).toBeInTheDocument(); expect(screen.getByText('Need help?')).toBeInTheDocument(); }); }); describe('accessibility', () => { it('should have proper semantic structure', () => { render( Forgot password? ); // The component uses Group which should have proper semantics expect(screen.getByText('Forgot password?')).toBeInTheDocument(); }); it('should maintain focus order', () => { render( Forgot password? Create account ); const links = screen.getAllByRole('link'); expect(links).toHaveLength(2); }); }); describe('edge cases', () => { it('should handle empty children', () => { render({null}); // Component should render without errors }); it('should handle undefined children', () => { render({undefined}); // Component should render without errors }); it('should handle empty string children', () => { render({''}); // Component should render without errors }); it('should handle nested children', () => { render(
Forgot password?
); expect(screen.getByText('Forgot password?')).toBeInTheDocument(); }); it('should handle complex link structures', () => { render( Forgot password? ); expect(screen.getByText('Forgot')).toBeInTheDocument(); expect(screen.getByText('password?')).toBeInTheDocument(); }); }); });