1 import {render} from '@testing-library/react'
2 import React from 'react'
3 import PageFooterComponent from '../page-footer'
4 import {PageProvider} from '../../hooks/use-page'
5
6 const PageFooter = pageContext => (
7 <PageProvider value={{pageContext}}>
8 <PageFooterComponent />
9 </PageProvider>
10 )
11
12 test('renders correctly when editUrl and contributors are defined', () => {
13 const {queryByText} = render(<PageFooter editUrl="#" contributors={['broccolini']} />)
14
15 expect(queryByText(/Edit this page on GitHub/)).toBeInTheDocument()
16 expect(queryByText(/contributor/)).toBeInTheDocument()
17 })
18
19 test('renders correctly when editUrl and contributors are undefined', () => {
20 const {queryByText} = render(<PageFooter />)
21
22 expect(queryByText(/Edit this page on GitHub/)).toBeNull()
23 expect(queryByText(/contributor/)).toBeNull()
24 })
25
26 test('renders correctly when editUrl is defined but contributors is undefined', () => {
27 const {queryByText} = render(<PageFooter editUrl="#" />)
28
29 expect(queryByText(/Edit this page on GitHub/)).toBeInTheDocument()
30 expect(queryByText(/contributor/)).toBeNull()
31 })
32
33 test('renders correctly when contributors is defined but editUrl is undefined', () => {
34 const {queryByText} = render(<PageFooter contributors={['broccolini']} />)
35
36 expect(queryByText(/Edit this page on GitHub/)).toBeNull()
37 expect(queryByText(/contributor/)).toBeInTheDocument()
38 })
39
40 test('does not render contributors if contributors is an empty array', () => {
41 const {queryByText} = render(<PageFooter contributors={[]} />)
42
43 expect(queryByText(/contributor/)).toBeNull()
44 })