import { test, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import Metadata from './PageMetadata'; const NAME = 'Directorate'; const VALUE = 'Equality, Inclusion and Human Rights Directorate'; test('metadata renders correctly', () => { render( {VALUE} ); const metadata = document.querySelector('.ds_metadata'); const metadataItem = document.querySelector('.ds_metadata__item'); const metadataItemKey = screen.getByRole('term'); const metadataItemValue = screen.getByRole('definition'); expect(metadata).toBeInTheDocument(); expect(metadataItem).toBeInTheDocument(); expect(metadataItemKey).toHaveClass('ds_metadata__key'); expect(metadataItemKey.textContent).toEqual(NAME); expect(metadataItemValue).toHaveClass('ds_metadata__value'); expect(metadataItemValue.textContent.trim()).toEqual(VALUE); }); test('inline metadata', () => { render( {VALUE} ); const metadata = document.querySelector('.ds_metadata'); expect(metadata).toHaveClass('ds_metadata--inline'); }); test('passing additional props', () => { render( 21/04/2020 ) const metadata = document.querySelector('.ds_metadata') as HTMLElement; const metadataItem = document.querySelector('.ds_metadata__item') as HTMLElement; expect(metadata?.dataset.test).toEqual('foo'); expect(metadataItem?.dataset.test).toEqual('bar'); }); test('passing additional CSS classes', () => { render( 21/04/2020 ) const metadata = document.querySelector('.ds_metadata'); const metadataItem = document.querySelector('.ds_metadata__item'); expect(metadata).toHaveClass('foo'); expect(metadataItem).toHaveClass('bar'); });