]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-19294 Improve "number of days" NCD option value validation
authorPhilippe Perrin <philippe.perrin@sonarsource.com>
Wed, 31 May 2023 08:50:52 +0000 (10:50 +0200)
committersonartech <sonartech@sonarsource.com>
Wed, 31 May 2023 20:02:50 +0000 (20:02 +0000)
server/sonar-web/src/main/js/helpers/__tests__/periods-test.ts
server/sonar-web/src/main/js/helpers/periods.ts

index ae1f3b3c22ffdff9ca86c30a8db4cab802b4c385..aca69741c93e6311f8bd32da219671d61e779fdb 100644 (file)
@@ -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);
     }
index b79b47bd844ee915c7e55c6261d6d2985df10c60..7e80ce8a8d2b8d0e3d7df01dc8f5048313a2a8b5 100644 (file)
@@ -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