import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { TheLandingProvider } from '../../theme'; import BoardCard from '.'; import { BOARD_THUMBNAIL_DEFAULT_URL } from './constants'; describe('BoardCard', () => { it('renders with expected data from props', () => { const { getByText, getByTestId } = render( ); // renders board title & creator username getByText('Test Board Title'); getByText('@test_user'); // renders board thumbnail with correct image source const thumbnailImg = getByTestId('thumbnail-image') as HTMLImageElement; expect(thumbnailImg.src).toContain( 'https://ik.imagekit.io/landing/1647396229384_tl_arcvVeIdfh5Q' ); // renders user avatar with correct image source const avatarImg = getByTestId('avatar-wrapper') .firstChild as HTMLImageElement; expect(avatarImg?.src).toContain( 'https://ik.imagekit.io/landing/1641326434503_tl_7Ji2qrCTe' ); cleanup(); }); it('renders a text avatar & default board thumbnail if not passed via props', () => { const { getByText, getByTestId, getByTitle } = render( ); // renders board title & creator username getByText('Test Board Title'); getByText('@test_user'); // renders default board thumbnail const thumbnailImg = getByTestId('thumbnail-image') as HTMLImageElement; expect(thumbnailImg.src).toContain(BOARD_THUMBNAIL_DEFAULT_URL); // renders a text avatar const textAvatar = getByTestId('avatar-wrapper').firstChild; expect(textAvatar).toBeTruthy(); getByTitle('test_user'); cleanup(); }); });