From 1bbe98379a72a062e57119d3e625ab26b4ef96a6 Mon Sep 17 00:00:00 2001 From: Ali <83188384+testA113@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:36:41 +1300 Subject: [PATCH] fix(app): NaN validation for autoscaling [EE-6714] (#11238) --- .../AutoScalingFormSection/autoScalingValidation.ts | 8 +++++--- .../resourceReservationValidation.ts | 10 +++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts b/app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts index 272c2f588..e763c884b 100644 --- a/app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts +++ b/app/react/kubernetes/applications/components/AutoScalingFormSection/autoScalingValidation.ts @@ -1,5 +1,7 @@ import { SchemaOf, boolean, number, object } from 'yup'; +import { nanNumberSchema } from '@/react-tools/yup-schemas'; + import { AutoScalingFormValues } from './types'; type ValidationData = { @@ -14,7 +16,7 @@ export function autoScalingValidation( isUsed: boolean().required(), minReplicas: number().when('isUsed', (isUsed: boolean) => isUsed - ? number() + ? nanNumberSchema('Minimum instances is required.') .required('Minimum instances is required.') .min(1, 'Minimum instances must be greater than 0.') .test( @@ -33,7 +35,7 @@ export function autoScalingValidation( ), maxReplicas: number().when('isUsed', (isUsed: boolean) => isUsed - ? number() + ? nanNumberSchema('Maximum instances is required.') .required('Maximum instances is required.') .test( 'minReplicas', @@ -58,7 +60,7 @@ export function autoScalingValidation( 'isUsed', (isUsed: boolean) => isUsed - ? number() + ? nanNumberSchema('Target CPU utilization percentage is required.') .min(0, 'Target CPU usage must be greater than 0.') .max(100, 'Target CPU usage must be smaller than 100.') .required('Target CPU utilization percentage is required.') diff --git a/app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts b/app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts index 9c4e99b61..6efe8ba37 100644 --- a/app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts +++ b/app/react/kubernetes/applications/components/ResourceReservationFormSection/resourceReservationValidation.ts @@ -23,8 +23,8 @@ export function resourceReservationValidation( validationData?: ValidationData ): SchemaOf { return object().shape({ - memoryLimit: nanNumberSchema() - .min(0, 'Value must be greater than or equal to 0') + memoryLimit: nanNumberSchema('Memory limit is required.') + .min(0, 'Value must be greater than or equal to 0.') .test( 'exhaused', `The memory capacity for this namespace has been exhausted, so you cannot deploy the application.${ @@ -37,7 +37,7 @@ export function resourceReservationValidation( .max( validationData?.maxMemoryLimit || 0, ({ value }) => - `Value must be between 0 and ${validationData?.maxMemoryLimit}MB now - the previous value of ${value} exceeds this` + `Value must be between 0 and ${validationData?.maxMemoryLimit}MB now - the previous value of ${value} exceeds this.` ) .test( 'hasSuitableNode', @@ -56,7 +56,7 @@ export function resourceReservationValidation( ); } ) - .required(), + .required('Memory limit is required.'), cpuLimit: number() .min(0) .test( @@ -71,7 +71,7 @@ export function resourceReservationValidation( .max( validationData?.maxCpuLimit || 0, ({ value }) => - `Value must be between 0 and ${validationData?.maxCpuLimit} now - the previous value of ${value} exceeds this` + `Value must be between 0 and ${validationData?.maxCpuLimit} now - the previous value of ${value} exceeds this.` ) .test( 'hasSuitableNode',