Skip to content

Commit fa72724

Browse files
authored
fix(condo): DOMA-11245 support restrictionEndDay being null (#5913)
1 parent 1c43304 commit fa72724

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

apps/condo/domains/meter/components/MeterReportingPeriodForm.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const MeterReportingPeriodForm: React.FC<IMeterReportingPeriodForm> = ({
9090

9191
const [isOrganizationPeriod, setIsOrganizationPeriod] = useState(false)
9292
const [selectedPropertyId, setSelectedPropertyId] = useState()
93-
const [restrictionEndDay, setRestrictionEndDay] = useState(undefined)
93+
const [restrictionEndDay, setRestrictionEndDay] = useState(null)
9494

9595
const { breakpoints } = useLayoutContext()
9696
const isSmallWindow = !breakpoints.TABLET_LARGE
@@ -101,7 +101,7 @@ export const MeterReportingPeriodForm: React.FC<IMeterReportingPeriodForm> = ({
101101
notifyEndDay: isCreateMode ? 25 : get(reportingPeriodRecord, 'notifyEndDay'),
102102
property: isCreateMode ? undefined : get(reportingPeriodRecord, 'property.address'),
103103
isOrganizationPeriod: isCreateMode ? false : get(reportingPeriodRecord, 'property') === null,
104-
restrictionEndDay: isCreateMode ? undefined : get(reportingPeriodRecord, 'restrictionEndDay'),
104+
restrictionEndDay: isCreateMode ? null : get(reportingPeriodRecord, 'restrictionEndDay'),
105105
}), [isCreateMode, reportingPeriodRecord])
106106

107107
const startNumberRef = useRef<number>(formInitialValues.notifyStartDay)
@@ -158,8 +158,8 @@ export const MeterReportingPeriodForm: React.FC<IMeterReportingPeriodForm> = ({
158158
useEffect(() => {
159159
if (form.isFieldsTouched(['notifyStartDay', 'notifyEndDay'])) form.validateFields(['notifyStartDay', 'notifyEndDay'])
160160
if (startNumberRef.current > finishNumberRef.current) {
161-
setRestrictionEndDay(undefined)
162-
form.setFieldValue('restrictionEndDay', undefined)
161+
setRestrictionEndDay(null)
162+
form.setFieldValue('restrictionEndDay', null)
163163
}
164164
}, [startNumberRef.current, finishNumberRef.current])
165165

@@ -366,7 +366,7 @@ export const MeterReportingPeriodForm: React.FC<IMeterReportingPeriodForm> = ({
366366
<Space size={isSmallWindow ? 16 : 40}>
367367
<Radio
368368
key='not-strict'
369-
value={undefined}
369+
value={null}
370370
label={<LabelWithInfo title={NotStrictPeriodTooltip} message={NotStrictPeriodMessage} />}
371371
/>
372372
<Radio

apps/condo/domains/meter/schema/MeterReportingPeriod.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ const MeterReportingPeriod = new GQLListSchema('MeterReportingPeriod', {
135135
hooks: {
136136
validateInput: async ({ context, operation, resolvedData, fieldPath }) => {
137137
if (operation === 'create' || operation === 'update') {
138-
if (resolvedData[fieldPath] > 31 || resolvedData[fieldPath] < 1) {
138+
if (resolvedData[fieldPath] !== null && (resolvedData[fieldPath] > 31 || resolvedData[fieldPath] < 1)) {
139139
throw new GQLError(ERRORS.INVALID_RESTRICTION_END_DAY, context)
140140
}
141141
}

apps/condo/domains/meter/schema/MeterReportingPeriod.test.js

+9
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,15 @@ describe('MeterReportingPeriod', () => {
641641
})
642642

643643
test('restrictionEndDay field validation', async () => {
644+
const [property] = await createTestProperty(admin, commonOrganization)
645+
const [allowedWithNull, attrs] = await createTestMeterReportingPeriod(admin, commonOrganization, {
646+
restrictionEndDay: null,
647+
property: { connect: { id: property.id } },
648+
})
649+
expect(allowedWithNull.dv).toEqual(1)
650+
expect(allowedWithNull.sender).toEqual(attrs.sender)
651+
expect(allowedWithNull.createdBy).toEqual(expect.objectContaining({ id: admin.user.id }))
652+
644653
await expectToThrowGQLError(async () => {
645654
await createTestMeterReportingPeriod(admin, commonOrganization, {
646655
restrictionEndDay: 0,

0 commit comments

Comments
 (0)