import { fireEvent, render, waitFor } from '@testing-library/react';
import TextToolTip from './index';
describe('TextToolTip', () => {
const tooltipText = 'Tooltip Text';
it('displays the tooltip when hovering over the icon', async () => {
const { getByRole, getByText } = render();
const icon = getByRole('img');
fireEvent.mouseOver(icon);
await waitFor(() => {
const tooltip = getByText(tooltipText);
expect(tooltip).toBeInTheDocument();
});
});
it('renders the tooltip content correctly', async () => {
const { getByRole, getByText } = render(
,
);
const icon = getByRole('img');
fireEvent.mouseOver(icon);
await waitFor(() => {
const tooltip = getByText(tooltipText);
const link = getByText('here');
expect(tooltip).toBeInTheDocument();
expect(link).toHaveAttribute('href', 'https://example.com');
expect(link).toHaveAttribute('target', '_blank');
});
});
it('does not display the tooltip by default', () => {
const { queryByText } = render();
const tooltip = queryByText(tooltipText);
expect(tooltip).toBeNull();
});
it('opens the URL in a new tab when clicked', async () => {
const { getByRole } = render(
,
);
const icon = getByRole('img');
fireEvent.mouseOver(icon);
await waitFor(() => {
const link = getByRole('link');
expect(link).toHaveAttribute('href', 'https://example.com');
expect(link).toHaveAttribute('target', '_blank');
});
});
});