Skip to content

Commit 9f1e8f2

Browse files
authored
MPDX-8383 - Complete Task Modal - preselect result (#1148)
* Preselects result when one result option is available.
1 parent ada0000 commit 9f1e8f2

4 files changed

Lines changed: 45 additions & 7 deletions

File tree

src/components/Task/Modal/Form/Inputs/ResultAutocomplete/ResultAutocomplete.test.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,17 @@ describe('ResultSelect', () => {
8282
expect(getByRole('option', { name: 'Completed' })).toBeInTheDocument();
8383
userEvent.click(getByRole('option', { name: 'Completed' }));
8484

85+
expect(handleResultChange).toHaveBeenCalledWith({
86+
result: ResultEnum.Completed,
87+
setFieldValue,
88+
setResultSelected,
89+
phaseData,
90+
completedAction: ActivityTypeEnum.FollowUpTextMessage,
91+
});
92+
});
93+
it('preselects a result when only one result is available', async () => {
94+
render(<Components availableResults={[ResultEnum.Completed]} />);
95+
8596
expect(handleResultChange).toHaveBeenCalledWith({
8697
result: ResultEnum.Completed,
8798
setFieldValue,

src/components/Task/Modal/Form/Inputs/ResultAutocomplete/ResultAutocomplete.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useEffect } from 'react';
12
import { Autocomplete, Grid, TextField } from '@mui/material';
23
import { useTranslation } from 'react-i18next';
34
import {
@@ -32,6 +33,18 @@ export const ResultAutocomplete: React.FC<ResultAutocompleteProps> = ({
3233
}) => {
3334
const { t } = useTranslation();
3435

36+
useEffect(() => {
37+
if (availableResults.length === 1 && completedAction) {
38+
handleResultChange({
39+
result: availableResults[0],
40+
setFieldValue,
41+
setResultSelected,
42+
phaseData,
43+
completedAction,
44+
});
45+
}
46+
}, [completedAction]);
47+
3548
return !!availableResults.length ? (
3649
<Grid item>
3750
<Autocomplete

src/components/Task/Modal/Form/LogForm/TaskModalLogForm.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ describe('TaskModalLogForm', () => {
177177
expect(queryByLabelText('Comment')).not.toBeInTheDocument();
178178
expect(queryByLabelText('Tags')).not.toBeInTheDocument();
179179
expect(queryByLabelText('Assignee')).not.toBeInTheDocument();
180-
expect(queryByLabelText('Next Action')).not.toBeInTheDocument();
181180
userEvent.click(getByLabelText('Show More'));
182181
expect(getByLabelText('Comment')).toBeInTheDocument();
183182
userEvent.type(getByLabelText('Comment'), 'test comment');

src/components/Task/Modal/Form/TaskModalTests.tsx

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ type Components = ({
1616
props,
1717
}: ComponentsProps) => JSX.Element;
1818

19+
const options = [
20+
'None',
21+
'Phone Call',
22+
'Email',
23+
'Text Message',
24+
'Social Media',
25+
'In Person',
26+
'Thank You Note',
27+
'Digital Newsletter',
28+
'Physical Newsletter',
29+
'Prayer Request',
30+
'Update Information',
31+
'To Do',
32+
];
33+
1934
// eslint-disable-next-line jest/no-export
2035
export const taskModalTests = (Components: Components) => {
2136
describe('Task Modal Results +Next Action', () => {
@@ -261,15 +276,15 @@ export const taskModalTests = (Components: Components) => {
261276
ActivityTypeEnum.PartnerCareEmail,
262277
);
263278
expect(results).toEqual([]);
264-
expect(nextActions).toEqual([]);
279+
expect(nextActions).toEqual(options);
265280
});
266281

267282
it('as correct options for PartnerCarePhysicalNewsletter', async () => {
268283
const { results, nextActions } = await getOptions(
269284
ActivityTypeEnum.PartnerCarePhysicalNewsletter,
270285
);
271286
expect(results).toEqual([]);
272-
expect(nextActions).toEqual([]);
287+
expect(nextActions).toEqual(options);
273288
});
274289

275290
it('has correct options for NONE', async () => {
@@ -283,15 +298,15 @@ export const taskModalTests = (Components: Components) => {
283298
ActivityTypeEnum.PartnerCarePrayerRequest,
284299
);
285300
expect(results).toEqual([]);
286-
expect(nextActions).toEqual([]);
301+
expect(nextActions).toEqual(options);
287302
});
288303

289304
it('has correct options for PartnerCarePhoneCall', async () => {
290305
const { results, nextActions } = await getOptions(
291306
ActivityTypeEnum.PartnerCarePhoneCall,
292307
);
293308
expect(results).toEqual([]);
294-
expect(nextActions).toEqual([]);
309+
expect(nextActions).toEqual(options);
295310
});
296311

297312
it('has correct options for InitiationLetter', async () => {
@@ -307,15 +322,15 @@ export const taskModalTests = (Components: Components) => {
307322
ActivityTypeEnum.PartnerCareThank,
308323
);
309324
expect(results).toEqual([]);
310-
expect(nextActions).toEqual([]);
325+
expect(nextActions).toEqual(options);
311326
});
312327

313328
it('has correct options for PartnerCareToDo', async () => {
314329
const { results, nextActions } = await getOptions(
315330
ActivityTypeEnum.PartnerCareToDo,
316331
);
317332
expect(results).toEqual([]);
318-
expect(nextActions).toEqual([]);
333+
expect(nextActions).toEqual(options);
319334
});
320335
});
321336
};

0 commit comments

Comments
 (0)