diff --git a/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/tests/__snapshots__/index.test.tsx.snap b/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/tests/__snapshots__/index.test.tsx.snap index 920fd1e8b..b0bc33ca6 100644 --- a/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/tests/__snapshots__/index.test.tsx.snap +++ b/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/tests/__snapshots__/index.test.tsx.snap @@ -21,6 +21,7 @@ exports[`renders correctly: attractive item no radio button 1`] = ` exports[`renders correctly: attractive item yes radio button 1`] = ` { const errorNodes = [...document.querySelectorAll('.ant-form-item-explain-error')]; const errorMsgs = errorNodes.map((node) => node.textContent); - expect(errorMsgs).toEqual(['Required', 'Required', 'Required']); + expect(errorMsgs).toEqual(['Required', 'Required', 'Required', 'Required']); }); it('can create new commodity', async () => { @@ -432,8 +433,8 @@ it('can remove product image', async () => { ); nock(props.fhirBaseURL) - .put(`/${groupResourceType}/${commodity1.id}`, commodityLessImage) - .reply(200, commodityLessImage) + .put(`/${groupResourceType}/${commodity1.id}`, removedImageCommodity) + .reply(200, removedImageCommodity) .persist(); render( @@ -446,6 +447,9 @@ it('can remove product image', async () => { screen.getByText('Edit commodity | Bed nets'); }); + const attractiveYes = screen.getByRole('radio', { name: /yes/i }); + userEvent.click(attractiveYes); + const removeFileIcon = screen.getByTitle('Remove file'); userEvent.click(removeFileIcon); diff --git a/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/utils.ts b/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/utils.ts index 207a1fbf4..9d4e22f4c 100644 --- a/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/utils.ts +++ b/packages/fhir-group-management/src/components/CommodityAddEdit/Eusm/utils.ts @@ -8,9 +8,6 @@ import { cloneDeep, get } from 'lodash'; import { active, groupResourceType, - id, - identifier, - type, unitOfMeasure, name, listResourceType, @@ -54,6 +51,7 @@ import { IBinary } from '@smile-cdr/fhirts/dist/FHIR-R4/interfaces/IBinary'; import { UploadFile } from 'antd'; import { Coding } from '@smile-cdr/fhirts/dist/FHIR-R4/classes/coding'; import { R4GroupTypeCodes } from '@opensrp/fhir-helpers'; +import { defaultValidationRulesFactory } from '../../ProductForm/utils'; export type EusmGroupFormFields = GroupFormFields<{ group: IGroup; binary?: IBinary }>; @@ -80,8 +78,7 @@ export const defaultCode = { */ export const validationRulesFactory = (t: TFunction) => { return { - [id]: [{ type: 'string' }] as Rule[], - [identifier]: [{ type: 'string' }] as Rule[], + ...defaultValidationRulesFactory(t), [materialNumber]: [ { type: 'string', message: t('Must be a valid string') }, { required: true, message: t('Required') }, @@ -91,12 +88,12 @@ export const validationRulesFactory = (t: TFunction) => { { required: true, message: t('Required') }, ] as Rule[], [active]: [{ type: 'boolean' }, { required: true, message: t('Required') }] as Rule[], - [type]: [{ type: 'enum', enum: Object.values(R4GroupTypeCodes), required: true }] as Rule[], - [isAttractiveItem]: [{ type: 'boolean' }] as Rule[], + [isAttractiveItem]: [{ required: true, message: t('Required') }, { type: 'boolean' }] as Rule[], [availability]: [{ type: 'string' }, { required: true, message: t('Required') }] as Rule[], - [condition]: [{ type: 'string' }] as Rule[], - [appropriateUsage]: [{ type: 'string' }] as Rule[], - [accountabilityPeriod]: [{ type: 'number' }] as Rule[], + [accountabilityPeriod]: [ + { required: true, message: t('Required') }, + { type: 'number' }, + ] as Rule[], }; }; @@ -336,6 +333,7 @@ export const getGroupFormFields = (obj?: IGroup, binary?: IBinary): EusmGroupFor return { initialObject: { group: { code: defaultCode } }, active: true, + [isAttractiveItem]: true, type: R4GroupTypeCodes.SUBSTANCE, } as EusmGroupFormFields; } diff --git a/packages/fhir-group-management/src/components/LocationInventory/form.tsx b/packages/fhir-group-management/src/components/LocationInventory/form.tsx index 0268e7000..e9f9ba509 100644 --- a/packages/fhir-group-management/src/components/LocationInventory/form.tsx +++ b/packages/fhir-group-management/src/components/LocationInventory/form.tsx @@ -154,14 +154,18 @@ const AddLocationInventoryForm = (props: LocationInventoryFormProps) => { return (