From e331106e56d59a8b987230860b66214139c12ef6 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 13 Nov 2023 18:46:31 +0100 Subject: refactor(components): rewrite ImageWidget component * remove `imageClassName` prop * replace `image` prop with `img` and expect an image instead of an object * remove `alignment prop` * remove useless CSS --- .../widgets/image-widget/image-widget.test.tsx | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/components/organisms/widgets/image-widget/image-widget.test.tsx (limited to 'src/components/organisms/widgets/image-widget/image-widget.test.tsx') diff --git a/src/components/organisms/widgets/image-widget/image-widget.test.tsx b/src/components/organisms/widgets/image-widget/image-widget.test.tsx new file mode 100644 index 0000000..ecf8d77 --- /dev/null +++ b/src/components/organisms/widgets/image-widget/image-widget.test.tsx @@ -0,0 +1,81 @@ +import { describe, expect, it } from '@jest/globals'; +import { render, screen as rtlScreen } from '@testing-library/react'; +import NextImage from 'next/image'; +import { Heading } from '../../../atoms'; +import { ImageWidget } from './image-widget'; + +describe('ImageWidget', () => { + it('render the widget heading and an image', () => { + const heading = 'quam tempore ea'; + const headingLvl = 3; + const altTxt = 'enim'; + + render( + {heading}} + img={ + + } + /> + ); + + expect( + rtlScreen.getByRole('heading', { level: headingLvl }) + ).toHaveTextContent(heading); + expect(rtlScreen.getByRole('img')).toHaveAccessibleName(altTxt); + }); + + it('can render an image wrapped in a link', () => { + const heading = 'quam tempore ea'; + const headingLvl = 3; + const altTxt = 'enim'; + const url = 'https://example.test'; + + render( + {heading}} + img={ + + } + url={url} + /> + ); + + expect(rtlScreen.getByRole('link')).toHaveAttribute('href', url); + expect(rtlScreen.getByRole('img')).toHaveAccessibleName(altTxt); + }); + + it('can render an image with a description', () => { + const heading = 'quam tempore ea'; + const headingLvl = 3; + const altTxt = 'enim'; + const desc = 'itaque laudantium ut'; + + render( + {heading}} + img={ + + } + /> + ); + + expect(rtlScreen.getByRole('figure')).toHaveAccessibleName(desc); + }); +}); -- cgit v1.2.3