import React from 'react';
import { render, screen } from '@testing-library/react';
import CarePanel from './care-panel.component';
import { mockComponent } from 'react-dom/test-utils';
import { mockPatient } from '../../../../__mocks__/patient-summary.mock';
jest.mock('../program-summary/program-summary.component', () => ({
__esModule: true,
default: () =>
,
}));
jest.mock('../program-enrollment/program-enrollment.component', () => ({
__esModule: true,
default: () => ,
}));
const mockPatientUuid = mockPatient.uuid;
jest.mock('@carbon/react', () => ({
StructuredListSkeleton: () => ,
ContentSwitcher: ({ children }) => {children}
,
Switch: ({ text }) => ,
InlineLoading: () => ,
}));
describe('CarePanel Component', () => {
xit('renders without crashing', () => {
jest.spyOn(require('../hooks/useEnrollmentHistory'), 'useEnrollmentHistory').mockReturnValue({
data: [{ patientUuid: mockPatientUuid }],
isLoading: false,
isError: false,
});
render();
expect(screen.getByText('Care Panel')).toBeInTheDocument();
});
xit('displays loading skeleton when isLoading is true', () => {
jest.spyOn(require('../hooks/useEnrollmentHistory'), 'useEnrollmentHistory').mockReturnValue({
data: [],
isLoading: true,
isError: false,
});
render();
expect(screen.getByTestId('mocked-structured-list-skeleton')).toBeInTheDocument();
expect(screen.queryByTestId('mocked-program-summary')).not.toBeInTheDocument();
expect(screen.queryByTestId('mocked-program-enrollment')).not.toBeInTheDocument();
});
xit('displays error message when isError is true', () => {
jest.spyOn(require('../hooks/useEnrollmentHistory'), 'useEnrollmentHistory').mockReturnValue({
data: [],
isLoading: false,
isError: true,
});
render();
expect(screen.getByText('Error loading program enrollments')).toBeInTheDocument();
expect(screen.queryByTestId('mocked-structured-list-skeleton')).not.toBeInTheDocument();
expect(screen.queryByTestId('mocked-program-summary')).not.toBeInTheDocument();
expect(screen.queryByTestId('mocked-program-enrollment')).not.toBeInTheDocument();
});
});