diff --git a/src/components/Reports/MinisterHousingAllowance/MinisterHousingAllowance.tsx b/src/components/Reports/MinisterHousingAllowance/MinisterHousingAllowance.tsx
index d74a4f67be..bdb0b1b1e9 100644
--- a/src/components/Reports/MinisterHousingAllowance/MinisterHousingAllowance.tsx
+++ b/src/components/Reports/MinisterHousingAllowance/MinisterHousingAllowance.tsx
@@ -181,7 +181,10 @@ export const MinisterHousingAllowanceReport = () => {
)}
{showPreviousRequests && (
-
+
)}
>
diff --git a/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.test.tsx b/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.test.tsx
index 83ba1791c4..43d080d64b 100644
--- a/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.test.tsx
+++ b/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.test.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import { ThemeProvider } from '@mui/material/styles';
import { render, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
+import { DeepPartial } from 'ts-essentials';
import TestRouter from '__tests__/util/TestRouter';
import { GqlMockedProvider } from '__tests__/util/graphqlMocking';
import theme from 'src/theme';
@@ -17,19 +18,40 @@ import { CurrentBoardApproved } from './CurrentBoardApproved';
const newRequestId = 'new-request-id';
const mutationSpy = jest.fn();
const mockPush = jest.fn();
+
+const singleContext: Partial = {
+ isMarried: false,
+ preferredName: 'John',
+ spousePreferredName: '',
+ userHcmData: {
+ staffInfo: {
+ personNumber: '000123456',
+ },
+ } as unknown as HcmData,
+ spouseHcmData: null,
+};
+
interface TestComponentProps {
- contextValue: Partial;
+ contextValue?: Partial;
+ request?: typeof mockMHARequest;
router?: {
push?: jest.Mock;
query?: { accountListId?: string };
};
+ mocks?: DeepPartial<{
+ DuplicateMinistryHousingAllowanceRequest: DuplicateMinistryHousingAllowanceRequestMutation;
+ }>;
+ hasOpenRequest?: boolean;
}
const TestComponent: React.FC = ({
- contextValue,
+ contextValue = singleContext,
+ request,
router = {},
+ mocks,
+ hasOpenRequest,
}) => {
- const approvedMHARequest = {
+ const approvedMHARequest = request ?? {
...mockMHARequest,
updatedAt: '2022-12-01',
requestAttributes: {
@@ -47,12 +69,16 @@ const TestComponent: React.FC = ({
+ mocks={mocks}
onCall={mutationSpy}
>
-
+
@@ -105,19 +131,7 @@ describe('CurrentBoardApproved Component', () => {
it('should render correctly for single person', () => {
const { queryByText, queryByRole, getAllByText } = render(
- ,
+ ,
);
expect(queryByText('Current Board Approved MHA')).toBeInTheDocument();
@@ -141,42 +155,19 @@ describe('CurrentBoardApproved Component', () => {
it('should navigate to edit page with new requestId after duplicate mutation', async () => {
const { getByText } = render(
-
-
-
- mocks={{
- DuplicateMinistryHousingAllowanceRequest: {
- duplicateMinistryHousingAllowanceRequest: {
- ministryHousingAllowanceRequest: {
- id: newRequestId,
- },
- },
+
-
-
-
-
-
- ,
+ },
+ },
+ }}
+ />,
);
const updateButton = getByText('Update Current MHA');
@@ -199,4 +190,11 @@ describe('CurrentBoardApproved Component', () => {
);
});
});
+
+ it('should hide Update Current MHA button when there is an open request', () => {
+ const { queryByText, getByText } = render();
+
+ expect(getByText('View Current MHA')).toBeInTheDocument();
+ expect(queryByText('Update Current MHA')).not.toBeInTheDocument();
+ });
});
diff --git a/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.tsx b/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.tsx
index a3e8f1a730..4623dc5e7d 100644
--- a/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.tsx
+++ b/src/components/Reports/MinisterHousingAllowance/SharedComponents/CurrentBoardApproved.tsx
@@ -24,10 +24,12 @@ import { MHARequest } from './types';
interface CurrentBoardApprovedProps {
request: MHARequest | null;
+ hasOpenRequest?: boolean;
}
export const CurrentBoardApproved: React.FC = ({
request,
+ hasOpenRequest = false,
}) => {
const { t } = useTranslation();
const locale = useLocale();
@@ -90,6 +92,7 @@ export const CurrentBoardApproved: React.FC = ({
linkOne={viewLink}
linkTwoText={t('Update Current MHA')}
handleLinkTwo={handleDuplicateRequest}
+ hideLinkTwoButton={hasOpenRequest}
isRequest={false}
handlePrint={handlePrint}
handleConfirmCancel={() => {}}