diff --git a/src/components/Header.test.tsx b/src/components/Header.test.tsx
index aec69a950..81ad82dba 100644
--- a/src/components/Header.test.tsx
+++ b/src/components/Header.test.tsx
@@ -1,4 +1,5 @@
import { fireEvent, render, screen } from '@testing-library/react';
+import { AppContext } from '../context/App';
import { Header } from './Header';
const mockNavigate = jest.fn();
@@ -8,6 +9,12 @@ jest.mock('react-router-dom', () => ({
}));
describe('components/Header.tsx', () => {
+ const fetchNotifications = jest.fn();
+
+ afterEach(() => {
+ jest.resetAllMocks();
+ });
+
it('should render itself & its children', () => {
const tree = render();
@@ -18,9 +25,26 @@ describe('components/Header.tsx', () => {
render();
fireEvent.click(screen.getByLabelText('Go Back'));
- expect(mockNavigate).toHaveBeenNthCalledWith(1, -1);
expect(mockNavigate).toHaveBeenCalledTimes(1);
expect(mockNavigate).toHaveBeenCalledWith(-1);
});
+
+ it('should navigate back and fetch notifications', () => {
+ render(
+
+
+ ,
+ );
+
+ fireEvent.click(screen.getByLabelText('Go Back'));
+
+ expect(mockNavigate).toHaveBeenCalledTimes(1);
+ expect(mockNavigate).toHaveBeenCalledWith(-1);
+ expect(fetchNotifications).toHaveBeenCalledTimes(1);
+ });
});
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index 23f7e3651..98698d861 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -1,21 +1,34 @@
import { ArrowLeftIcon } from '@primer/octicons-react';
-import type { FC, ReactNode } from 'react';
+import { type FC, type ReactNode, useContext } from 'react';
import { useNavigate } from 'react-router-dom';
+import { AppContext } from '../context/App';
import { Size } from '../types';
interface IHeader {
children: ReactNode;
+ fetchOnBack?: boolean;
}
-export const Header: FC = ({ children }: IHeader) => {
+export const Header: FC = ({
+ children,
+ fetchOnBack = false,
+}: IHeader) => {
const navigate = useNavigate();
+
+ const { fetchNotifications } = useContext(AppContext);
+
return (