import React from 'react'; import { render, screen, waitFor } from '@testing-library/react'; import { getWrapper } from '../../testUtils'; import userEvent from '@testing-library/user-event'; import { IconHelp } from './IconHelper'; describe('IconHelper', () => { const selectors = { helpButton: () => screen.getByRole('button', { name: /Info/i }), }; const renderIcon = (tooltipMessage: React.ReactNode) => { const { Wrapper } = getWrapper(); render( , ); }; it('should render correctly', async () => { renderIcon('This is a tooltip'); await waitFor(() => { expect(selectors.helpButton()).toBeInTheDocument(); }); }); it('should display tooltip on hover', async () => { const tooltipMessage = 'This is another tooltip'; renderIcon(tooltipMessage); await waitFor(() => { expect(selectors.helpButton()).toBeInTheDocument(); }); userEvent.hover(selectors.helpButton()); await waitFor(() => { expect(screen.getByText(tooltipMessage)).toBeVisible(); }); }); it('should render with aria-label prop for accessibility', async () => { const { Wrapper } = getWrapper(); render( , ); await waitFor(() => { expect( screen.getByRole('button', { name: /Info Helper Testing/i }), ).toBeInTheDocument(); }); }); });