import React from 'react'; import { render, screen } from '@testing-library/react'; import PatientNotesHistory from './notes-container.component'; import { usePatientNotes } from '../notes.resource'; import useEmrConfiguration from '../../../hooks/useEmrConfiguration'; import { emrConfigurationMock } from '__mocks__'; const mockedUseEmrConfiguration = jest.mocked(useEmrConfiguration); jest.mock('../../../hooks/useEmrConfiguration', () => jest.fn()); jest.mock('../notes.resource', () => ({ usePatientNotes: jest.fn(), })); const mockPatientUuid = 'sample-patient-uuid'; const mockPatientNotes = [ { id: 'note-1', diagnoses: '', encounterDate: '2024-08-01', encounterNote: 'Patient shows improvement with current medication.', encounterNoteRecordedAt: '2024-08-01T12:34:56Z', encounterProvider: 'Dr. John Doe', encounterProviderRole: 'Endocrinologist', }, { id: 'note-2', diagnoses: '', encounterDate: '2024-08-02', encounterNote: 'Blood pressure is slightly elevated. Consider adjusting medication.', encounterNoteRecordedAt: '2024-08-02T14:22:00Z', encounterProvider: 'Dr. Jane Smith', encounterProviderRole: 'Cardiologist', }, ]; describe('PatientNotesHistory', () => { beforeEach(() => { jest.resetAllMocks(); }); test('displays loading skeletons when loading', () => { mockedUseEmrConfiguration.mockReturnValue({ emrConfiguration: emrConfigurationMock, mutateEmrConfiguration: jest.fn(), isLoadingEmrConfiguration: false, errorFetchingEmrConfiguration: null, }); usePatientNotes.mockReturnValue({ patientNotes: [], isLoadingPatientNotes: true, }); render(); expect(screen.getAllByTestId('in-patient-note-skeleton')).toHaveLength(4); }); test('displays patient notes when available', () => { mockedUseEmrConfiguration.mockReturnValue({ emrConfiguration: emrConfigurationMock, mutateEmrConfiguration: jest.fn(), isLoadingEmrConfiguration: false, errorFetchingEmrConfiguration: null, }); usePatientNotes.mockReturnValue({ patientNotes: mockPatientNotes, isLoadingPatientNotes: false, }); render(); expect(screen.getByText('History')).toBeInTheDocument(); expect(screen.getByText('Patient shows improvement with current medication.')).toBeInTheDocument(); expect(screen.getByText('Dr. John Doe')).toBeInTheDocument(); expect(screen.getByText('Blood pressure is slightly elevated. Consider adjusting medication.')).toBeInTheDocument(); expect(screen.getByText('Dr. Jane Smith')).toBeInTheDocument(); }); });