Skip to content

Commit e83344e

Browse files
authored
Merge pull request #3889 from swagger-api/bug/3299-param-validation-regression
Validate number and integer parameter value `0` correctly
2 parents 75d482f + 4041689 commit e83344e

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/core/utils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,8 +494,8 @@ export const validateParam = (param, isXml, isOAS3 = false) => {
494494
let listCheck = type === "array" && Im.List.isList(value) && value.count()
495495
let fileCheck = type === "file" && value instanceof win.File
496496
let booleanCheck = type === "boolean" && (value || value === false)
497-
let numberCheck = type === "number" && value
498-
let integerCheck = type === "integer" && value
497+
let numberCheck = type === "number" && (value || value === 0)
498+
let integerCheck = type === "integer" && (value || value === 0)
499499

500500
if ( required && !(stringCheck || arrayCheck || listCheck || fileCheck || booleanCheck || numberCheck || integerCheck) ) {
501501
errors.push("Required field is not provided")

test/core/utils.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,14 @@ describe("utils", function() {
700700
}
701701
assertValidateParam(param, ["Required field is not provided"])
702702

703+
// valid integer, but 0 is falsy in JS
704+
param = {
705+
required: true,
706+
type: "integer",
707+
value: 0
708+
}
709+
assertValidateParam(param, [])
710+
703711
// valid integer
704712
param = {
705713
required: true,

0 commit comments

Comments
 (0)