From: Philippe Perrin Date: Wed, 31 May 2023 08:50:52 +0000 (+0200) Subject: SONAR-19294 Improve "number of days" NCD option value validation X-Git-Tag: 10.1.0.73491~189 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1e85cce23bbc3af65cbcbd1a799427d27b3f2b09;p=sonarqube.git SONAR-19294 Improve "number of days" NCD option value validation --- diff --git a/server/sonar-web/src/main/js/helpers/__tests__/periods-test.ts b/server/sonar-web/src/main/js/helpers/__tests__/periods-test.ts index ae1f3b3c22f..aca69741c93 100644 --- a/server/sonar-web/src/main/js/helpers/__tests__/periods-test.ts +++ b/server/sonar-web/src/main/js/helpers/__tests__/periods-test.ts @@ -115,13 +115,15 @@ describe('isNewCodeDefinitionCompliant', () => { it.each([ [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '0' }, false], [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '15' }, true], + [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '15.' }, false], + [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '15.0' }, false], [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '15.3' }, false], [{ type: NewCodePeriodSettingType.NUMBER_OF_DAYS, value: '91' }, false], [{ type: NewCodePeriodSettingType.PREVIOUS_VERSION }, true], [{ type: NewCodePeriodSettingType.REFERENCE_BRANCH }, true], [{ type: NewCodePeriodSettingType.SPECIFIC_ANALYSIS }, false], ])( - 'should test for new code definition compliance properly', + 'should test for new code definition compliance properly %s', (newCodePeriod: NewCodePeriod, result: boolean) => { expect(isNewCodeDefinitionCompliant(newCodePeriod)).toEqual(result); } diff --git a/server/sonar-web/src/main/js/helpers/periods.ts b/server/sonar-web/src/main/js/helpers/periods.ts index b79b47bd844..7e80ce8a8d2 100644 --- a/server/sonar-web/src/main/js/helpers/periods.ts +++ b/server/sonar-web/src/main/js/helpers/periods.ts @@ -79,6 +79,7 @@ export function isNewCodeDefinitionCompliant(newCodePeriod: NewCodePeriod) { return false; } return ( + !/\D/.test(newCodePeriod.value) && Number.isInteger(+newCodePeriod.value) && MIN_NUMBER_OF_DAYS <= +newCodePeriod.value && +newCodePeriod.value <= MAX_NUMBER_OF_DAYS