Newer
Older
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import Header from 'components/Header/Header'
import React from 'react'
import * as ModalAction from 'store/modal/modal.slice'
import { createMockEcolyoStore } from 'tests/__mocks__/store'
const mockedNavigate = jest.fn()
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useNavigate: () => mockedNavigate,
<Header setHeaderHeight={jest.fn()} desktopTitleKey="mockKey" />
expect(container).toMatchSnapshot()
expect(container.getElementsByTagName('header')[0]).toBeInTheDocument()
})
it('should display title and back button when desktopTitle key provided and displayBackArrow is true', () => {
screen.getByRole('button', { name: 'header.accessibility.button_back' })
).toBeInTheDocument()
it('should NOT display back button when displayBackArrow is false', async () => {
render(
desktopTitleKey="test"
displayBackArrow={false}
setHeaderHeight={jest.fn()}
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
expect(
screen.queryByRole('button', {
name: 'header.accessibility.button_back',
})
).not.toBeInTheDocument()
})
describe('back functions', () => {
it('should call navigate -1 when back button is clicked with NO back fn', async () => {
render(
<Provider store={store}>
<Header
desktopTitleKey="KEY"
displayBackArrow={true}
setHeaderHeight={jest.fn()}
/>
</Provider>
)
await userEvent.click(screen.getAllByRole('button')[0])
expect(mockedNavigate).toHaveBeenCalled()
})
it('should call custom back fn when back button is clicked', async () => {
const mockBack = jest.fn()
render(
<Provider store={store}>
<Header
desktopTitleKey="KEY"
displayBackArrow={true}
setHeaderHeight={jest.fn()}
backFunction={mockBack}
/>
</Provider>
)
await userEvent.click(screen.getAllByRole('button')[0])
expect(mockBack).toHaveBeenCalled()
})
it('should call handleClickFeedbacks when feedback button is clicked', async () => {
render(
<Header setHeaderHeight={jest.fn()} desktopTitleKey="mockKey" />
const updateModalSpy = jest.spyOn(ModalAction, 'openFeedbackModal')
await userEvent.click(screen.getAllByRole('button')[0])