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(
);
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();
});
});
});