From d7406124f2a5aeb1f5df1f75a2876b4ae158a265 Mon Sep 17 00:00:00 2001 From: ZimGil Date: Mon, 18 May 2020 04:41:11 +0300 Subject: [PATCH 1/3] throw error in case of step value is NaN --- src/convert-expression/step-values-conversion.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/convert-expression/step-values-conversion.js b/src/convert-expression/step-values-conversion.js index 4dd5eac..1f448f4 100644 --- a/src/convert-expression/step-values-conversion.js +++ b/src/convert-expression/step-values-conversion.js @@ -2,14 +2,18 @@ module.exports = (() => { function convertSteps(expressions){ - var stepValuePattern = /^(.+)\/(\d+)$/; + var stepValuePattern = /^(.+)\/(\w+)$/; for(var i = 0; i < expressions.length; i++){ var match = stepValuePattern.exec(expressions[i]); var isStepValue = match !== null && match.length > 0; if(isStepValue){ + var baseDivider = match[2]; + if(isNaN(baseDivider)){ + throw baseDivider + 'is not a valid step value'; + } var values = match[1].split(','); var setpValues = []; - var divider = parseInt(match[2], 10); + var divider = parseInt(baseDivider, 10); for(var j = 0; j <= values.length; j++){ var value = parseInt(values[j], 10); if(value % divider === 0){ From c0819256ea52f1bf17f9562346b3c1cd8bcb638e Mon Sep 17 00:00:00 2001 From: ZimGil Date: Mon, 18 May 2020 06:37:25 +0300 Subject: [PATCH 2/3] add test --- src/convert-expression/step-values-conversion.js | 2 +- test/convert-expression/step-values-conversion-test.js | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/convert-expression/step-values-conversion.js b/src/convert-expression/step-values-conversion.js index 1f448f4..b94996a 100644 --- a/src/convert-expression/step-values-conversion.js +++ b/src/convert-expression/step-values-conversion.js @@ -9,7 +9,7 @@ module.exports = (() => { if(isStepValue){ var baseDivider = match[2]; if(isNaN(baseDivider)){ - throw baseDivider + 'is not a valid step value'; + throw baseDivider + ' is not a valid step value'; } var values = match[1].split(','); var setpValues = []; diff --git a/test/convert-expression/step-values-conversion-test.js b/test/convert-expression/step-values-conversion-test.js index 6016630..88c73d4 100644 --- a/test/convert-expression/step-values-conversion-test.js +++ b/test/convert-expression/step-values-conversion-test.js @@ -4,10 +4,16 @@ const { expect } = require('chai'); var conversion = require('../../src/convert-expression/step-values-conversion'); describe('step-values-conversion.js', () => { - it('shuld convert step values', () => { + it('should convert step values', () => { var expressions = '1,2,3,4,5,6,7,8,9,10/2 0,1,2,3,4,5,6,7,8,9/5 * * * *'.split(' '); expressions = conversion(expressions); expect(expressions[0]).to.equal('2,4,6,8,10'); expect(expressions[1]).to.equal('0,5'); }); + + it('should throw an error if step value is not a number', () => { + var expressions = '1,2,3,4,5,6,7,8,9,10/someString 0,1,2,3,4,5,6,7,8,9/5 * * * *'.split(' '); + expect(() => conversion(expressions)).to.throw('someString is not a valid step value'); + }); + }); From c60463e0ec3298abd3d6a9b31ced6867b06a78c6 Mon Sep 17 00:00:00 2001 From: Lucas Merencia Date: Wed, 10 Mar 2021 10:54:44 -0300 Subject: [PATCH 3/3] fix merge --- src/convert-expression/step-values-conversion.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/convert-expression/step-values-conversion.js b/src/convert-expression/step-values-conversion.js index edb1685..01b13ab 100644 --- a/src/convert-expression/step-values-conversion.js +++ b/src/convert-expression/step-values-conversion.js @@ -12,7 +12,7 @@ module.exports = (() => { throw baseDivider + ' is not a valid step value'; } var values = match[1].split(','); - var setpValues = []; + var stepValues = []; var divider = parseInt(baseDivider, 10); for(var j = 0; j <= values.length; j++){ var value = parseInt(values[j], 10);