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(); });