diff --git a/packages/esm-care-panel-app/src/care-programs/care-programs.test.tsx b/packages/esm-care-panel-app/src/care-programs/care-programs.test.tsx
index e641a4de4..8250da7c3 100644
--- a/packages/esm-care-panel-app/src/care-programs/care-programs.test.tsx
+++ b/packages/esm-care-panel-app/src/care-programs/care-programs.test.tsx
@@ -6,6 +6,8 @@ import { launchPatientWorkspace, launchStartVisitPrompt } from '@openmrs/esm-pat
import { useVisit } from '@openmrs/esm-framework';
import { PatientCarePrograms } from '../hooks/useCarePrograms';
+jest.mock('../hooks/useCarePrograms');
+
const mockUseVisit = useVisit as jest.Mock;
const testProps = {
diff --git a/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.test.tsx b/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.test.tsx
index a9e40d729..8911fbb45 100644
--- a/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.test.tsx
+++ b/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.test.tsx
@@ -3,10 +3,14 @@ import { render, screen, fireEvent, waitFor } from '@testing-library/react';
import { act } from 'react-dom/test-utils';
import PatientSummary from './patient-summary.component';
import { useConfig } from '@openmrs/esm-framework';
+import { usePatientSummary } from '../hooks/usePatientSummary';
import { mockPatient } from '../../../../__mocks__/patient-summary.mock';
import dayjs from 'dayjs';
-const mockUseConfig = useConfig as jest.Mock;
+jest.mock('../hooks/usePatientSummary');
+
+const mockedUseConfig = useConfig as jest.Mock;
+const mockedUsePatientSummary = usePatientSummary as jest.Mock;
jest.mock('@openmrs/esm-framework', () => {
return {
@@ -16,20 +20,24 @@ jest.mock('@openmrs/esm-framework', () => {
});
describe('PatientSummary', () => {
- it('renders skeleton loader when loading', () => {
- jest.spyOn(require('../hooks/usePatientSummary'), 'usePatientSummary').mockReturnValue({
+ beforeEach(() => {
+ mockedUsePatientSummary.mockReturnValue({
data: null,
isError: false,
isLoading: true,
});
+ });
+ afterEach(() => mockedUsePatientSummary.mockReset());
+
+ it('renders a skeleton loader when loading', () => {
render();
const skeletonLoader = screen.getByRole('progressbar');
expect(skeletonLoader).toBeInTheDocument();
});
- it('renders error message when data retrieval fails', () => {
- jest.spyOn(require('../hooks/usePatientSummary'), 'usePatientSummary').mockReturnValue({
+ it('renders an error message when data retrieval fails', () => {
+ mockedUsePatientSummary.mockReturnValue({
data: null,
isError: true,
isLoading: false,
@@ -41,7 +49,7 @@ describe('PatientSummary', () => {
});
it('renders patient summary data when loaded', () => {
- jest.spyOn(require('../hooks/usePatientSummary'), 'usePatientSummary').mockReturnValueOnce({
+ mockedUsePatientSummary.mockReturnValue({
data: mockPatient,
isError: false,
isLoading: false,
@@ -69,16 +77,17 @@ describe('PatientSummary', () => {
});
it('triggers print when print button is clicked', async () => {
- jest.spyOn(require('../hooks/usePatientSummary'), 'usePatientSummary').mockReturnValueOnce({
+ mockedUsePatientSummary.mockReturnValue({
data: mockPatient,
isError: false,
isLoading: false,
});
+
const printFunction = jest.fn();
const useReactToPrintSpy = jest.spyOn(require('react-to-print'), 'useReactToPrint');
useReactToPrintSpy.mockReturnValue(printFunction);
- mockUseConfig.mockReturnValue({ logo: {} });
+ mockedUseConfig.mockReturnValue({ logo: {} });
render();
const printButton = screen.getByText('Print', { exact: true });
diff --git a/packages/esm-care-panel-app/src/regimen/regimen-history.component.test.tsx b/packages/esm-care-panel-app/src/regimen/regimen-history.component.test.tsx
index 5c9d10ff2..6af73d783 100644
--- a/packages/esm-care-panel-app/src/regimen/regimen-history.component.test.tsx
+++ b/packages/esm-care-panel-app/src/regimen/regimen-history.component.test.tsx
@@ -1,36 +1,42 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
+import { useRegimenHistory } from '../hooks/useRegimenHistory';
import RegimenHistory, { RegimenHistoryProps } from './regimen-history.component';
+jest.mock('../hooks/useRegimenHistory');
+
+const mockedUseRegimenHistory = jest.mocked(useRegimenHistory);
+
describe('RegimenHistory Component', () => {
const mockProps: RegimenHistoryProps = {
patientUuid: 'patient-123',
category: 'HIV Program',
};
+
const mockData = [
{
regimenShortDisplay: 'ShortDisplay',
regimenLine: 'Line1',
- changeReasons: '[Reason1]',
+ changeReasons: ['Reason1'],
+ regimenUuid: 'regimen-123',
+ startDate: '2021-01-01',
+ endDate: '',
+ regimenLongDisplay: 'LongDisplay',
+ current: false,
},
];
- it('renders without crashing', () => {
- jest.spyOn(require('../hooks/useRegimenHistory'), 'useRegimenHistory').mockReturnValue({
+
+ beforeEach(() => {
+ mockedUseRegimenHistory.mockReturnValue({
regimen: mockData,
isLoading: false,
error: false,
});
- render();
- expect(screen.getByText('Regimen History')).toBeInTheDocument();
});
it('displays regimen history details correctly', () => {
- jest.spyOn(require('../hooks/useRegimenHistory'), 'useRegimenHistory').mockReturnValue({
- regimen: mockData,
- isLoading: false,
- error: false,
- });
render();
+
expect(screen.getByText(mockData[0].regimenLine)).toBeInTheDocument();
expect(screen.getByText(mockData[0].regimenShortDisplay)).toBeInTheDocument();
});