import '@testing-library/jest-dom'; import { render, screen, waitFor } from '@testing-library/react'; import React from 'react'; import { getWrapper } from '../../testUtils'; import { Icon } from '../icon/Icon.component'; import { Banner } from './Banner.component'; describe('Banner', () => { const { Wrapper } = getWrapper(); it('should render with text content', () => { render( Some text content, { wrapper: Wrapper } ); expect(screen.getByText('Some text content')).toBeInTheDocument(); }); it('should render with title', () => { render( Body text , { wrapper: Wrapper } ); expect(screen.getByText('My Title')).toBeInTheDocument(); expect(screen.getByText('Body text')).toBeInTheDocument(); }); it('should render with default icon when withDefaultIcon is true', async () => { const { container } = render( Message with default icon , { wrapper: Wrapper }, ); expect(screen.getByText('Message with default icon')).toBeInTheDocument(); // Icon is decorative (aria-hidden), verify it's rendered via DOM query await waitFor(() => { expect(container.querySelector('svg[data-icon="circle-info"]')).toBeInTheDocument(); }); }); it('should render with custom icon when icon prop is provided', async () => { const { container } = render( }> Message with custom icon , { wrapper: Wrapper }, ); expect(screen.getByText('Message with custom icon')).toBeInTheDocument(); // Icon is decorative (aria-hidden), verify it's rendered via DOM query await waitFor(() => { expect(container.querySelector('svg[data-icon="circle-check"]')).toBeInTheDocument(); }); }); });