import React from 'react'; import { Link } from './Link'; import { render, screen } from '../../test-utils'; describe('components/Link', () => { it('renders correctly as a link when href is provided', () => { render(Click me); const link = screen.getByRole('link', { name: 'Click me' }); expect(link).toHaveAttribute('href', 'https://example.com'); expect(link).toHaveClass('text-[var(--rb-ring)]'); }); it('automatically adds target="_blank" and rel for external links', () => { render(External); const link = screen.getByRole('link'); expect(link).toHaveAttribute('target', '_blank'); expect(link).toHaveAttribute('rel', 'noopener noreferrer'); }); it('does not add target="_blank" for internal links by default', () => { render(Internal); const link = screen.getByRole('link'); expect(link).not.toHaveAttribute('target'); }); it('respects explicit isExternal prop', () => { const { rerender } = render(Force External); expect(screen.getByRole('link')).toHaveAttribute('target', '_blank'); rerender(Force Internal); expect(screen.getByRole('link')).not.toHaveAttribute('target'); }); it('renders as a button/span when no href is provided but has onPress', () => { render( {}}>Click me); expect(screen.getByText('Click me')).toBeInTheDocument(); }); });