import { describe, expect, it } from '@jest/globals'; import { render, screen as rtlScreen } from '../../../../tests/utils'; import type { PageLink } from '../../../types'; import { PageFooter } from './page-footer'; describe('PageFooter', () => { it('renders a list of links', () => { const links = [ { id: 1, name: 'Topic 1', url: '/topic1' }, { id: 2, name: 'Topic 2', url: '/topic2' }, { id: 3, name: 'Topic 3', url: '/topic3' }, ] satisfies PageLink[]; render(); expect(rtlScreen.getByRole('term')).toHaveTextContent( 'Read more posts about:' ); expect(rtlScreen.getAllByRole('link')).toHaveLength(links.length); }); it('can renders a list of links with logo', () => { const links = [ { id: 1, logo: { alt: 'a logo', height: 480, width: 640, src: 'https://picsum.photos/640/480', }, name: 'Topic 1', url: '/topic1', }, { id: 2, name: 'Topic 2', url: '/topic2' }, { id: 3, name: 'Topic 3', url: '/topic3' }, ] satisfies PageLink[]; render(); expect(rtlScreen.getByRole('term')).toHaveTextContent( 'Read more posts about:' ); expect(rtlScreen.getAllByRole('link')).toHaveLength(links.length); expect(rtlScreen.getByRole('img')).toHaveAccessibleName(links[0].logo?.alt); }); it('does not render a list when the prop length is 0', () => { const { container } = render(); expect(container.firstChild).toBeEmptyDOMElement(); }); });