diff --git a/src/app/(home)/HeroHeader.tsx b/src/app/(home)/HeroHeader.tsx new file mode 100644 index 0000000..1b974a9 --- /dev/null +++ b/src/app/(home)/HeroHeader.tsx @@ -0,0 +1,55 @@ +import React from 'react' +import Image from 'next/image' +import heroImage from '../../../public/hero.webp' +import { + Box, + Divider, + Grid, + GridItem, + Heading, + Text, + VStack, +} from '@chakra-ui/react' +import CTAButton from '../components/CTAButton' + +export default function HeroHeader() { + return ( + <> + + + + + + Transforming Lives Through Service + + + Join us in making a difference and empowering the next + generation. Education is a light, let's keep it shining + bright. + + + + + + + Hero Header Image + + + + + ) +} diff --git a/src/app/(home)/__tests__/HeroHeader.test.tsx b/src/app/(home)/__tests__/HeroHeader.test.tsx new file mode 100644 index 0000000..89f8561 --- /dev/null +++ b/src/app/(home)/__tests__/HeroHeader.test.tsx @@ -0,0 +1,17 @@ +import { screen, render } from '@testing-library/react' +import React from 'react' +import '@testing-library/jest-dom' +import HeroHeader from '../HeroHeader' + +describe('HeroHeader', () => { + it('renders the HeroHeader component', () => { + render() + expect(screen.getByRole('heading')).toHaveTextContent( + 'Transforming Lives Through Service' + ) + }) + it('render the Call To Action Button', () => { + render() + expect(screen.getByRole('button')).toHaveTextContent('Donate Now') + }) +}) diff --git a/src/app/(home)/__tests__/HomePage.test.tsx b/src/app/(home)/__tests__/HomePage.test.tsx index d25f2b6..e1d8a58 100644 --- a/src/app/(home)/__tests__/HomePage.test.tsx +++ b/src/app/(home)/__tests__/HomePage.test.tsx @@ -1,4 +1,4 @@ -import { screen, render } from '@testing-library/react' +import { screen, render, waitFor } from '@testing-library/react' import React from 'react' import Home from '@/app/page' import '@testing-library/jest-dom' @@ -9,4 +9,12 @@ describe('Home Page', () => { expect(screen.getByText('Ray Foundation')).toBeInTheDocument() }) + it('should render the hero header', async () => { + const { getByText } = render() + const lazyElement = await waitFor(() => + getByText('Transforming Lives Through Service') + ) + + expect(lazyElement).toBeInTheDocument() + }) })