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