diff --git a/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.test.tsx b/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.test.tsx index 6203fe440dd..e6e046c66b0 100644 --- a/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.test.tsx +++ b/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.test.tsx @@ -78,6 +78,32 @@ describe('EditDefaultPolicyForm', function () { }); }); + it('should show an error if repeat interval is lower than group interval', async function () { + const user = userEvent.setup(); + + const onSubmit = jest.fn(); + renderRouteForm( + { + id: '0', + receiver: 'default', + }, + [{ value: 'default', label: 'Default' }], + onSubmit + ); + + await user.click(ui.timingOptionsBtn.get()); + + await user.type(ui.groupWaitInput.get(), '5m25s'); + await user.type(ui.groupIntervalInput.get(), '35m40s'); + await user.type(ui.repeatIntervalInput.get(), '30m'); + + await user.click(ui.submitBtn.get()); + + expect(ui.error.getAll()).toHaveLength(1); + expect(ui.error.get().textContent).toBe('Repeat interval should be higher or equal to Group interval'); + expect(onSubmit).not.toHaveBeenCalled(); + }); + it('should allow resetting existing timing options', async function () { const user = userEvent.setup(); diff --git a/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.tsx b/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.tsx index 192299b12ad..1812ad8bbb9 100644 --- a/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.tsx +++ b/public/app/features/alerting/unified/components/notification-policies/EditDefaultPolicyForm.tsx @@ -10,6 +10,7 @@ import { mapMultiSelectValueToStrings, mapSelectValueToString, promDurationValidator, + repeatIntervalValidator, stringsToSelectableValues, stringToSelectableValue, } from '../../utils/amroutes'; @@ -43,7 +44,7 @@ export const AmRootRouteForm = ({ return (