Skip to content

Commit

Permalink
Merge pull request #8 from buglss/crontime-validation
Browse files Browse the repository at this point in the history
Bug fixed for crontime expression validation function.
  • Loading branch information
buglss authored Aug 21, 2022
2 parents 30a343b + 081308d commit 6d2050a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
23 changes: 17 additions & 6 deletions lib/is-valid-cron-expression.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,28 @@ module.exports = function(expression) {

if(sec.includes("/")) {
let secOpts = sec.split("/")

if(secOpts[0].includes("-")) {
let sec = secOpts[0]
if(sec.includes(",")) return false
else {
let secOpts = sec.split("-")
if(!secOpts.every(secOpt => {
return +secOpt >= 0 && +secOpt <= maxValues[i]
})) return false

return true
}
}

if(secOpts[0] !== "*" && !secOpts.every(secOpt => {
return +secOpt >= 0 && +secOpt <= maxValues[i]
})) return false
else if((secOpts[0] === "*" && +secOpts[1] >= 0 && +secOpts[1] <= maxValues[i]) || secOpts.every(secOpt => {
return +secOpt >= 0 && +secOpt <= maxValues[i]
})) return true
else false
}
else if(sec.includes("-")) {
} else if(sec.includes("-")) {
if(sec.includes(",")) {
let secOpts = sec.split(",")
let values = secOpts.filter(secOpt => !secOpt.includes("-"))
Expand All @@ -86,16 +99,14 @@ module.exports = function(expression) {

return true
}
}
else if(sec.includes(",")) {
} else if(sec.includes(",")) {
let secOpts = sec.split(",")
if(!secOpts.every(secOpt => {
return +secOpt >= 0 && +secOpt <= maxValues[i]
})) return false

return true
}
else if(+sec >= 0 && +sec <= maxValues[i]) return true
} else if(+sec >= 0 && +sec <= maxValues[i]) return true
else return false

})) return true
Expand Down
4 changes: 4 additions & 0 deletions test/src_on-crontime.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@ describe("onCrontime", function() {
let crontime = "0 2 * * *"
assert.strictEqual(onCrontime(crontime), crontime)
})
it(`onCrontime("0-30/5 20 * * *") --> "0-30/5 20 * * *" --> The used value is returned when a valid crontime expression is use.`, function() {
let crontime = "0-30/5 20 * * *"
assert.strictEqual(onCrontime(crontime), crontime)
})
})

0 comments on commit 6d2050a

Please sign in to comment.