Merge pull request #3889 from swagger-api/bug/3299-param-validation-regression
Validate number and integer parameter value `0` correctly
This commit is contained in:
@@ -494,8 +494,8 @@ export const validateParam = (param, isXml, isOAS3 = false) => {
|
|||||||
let listCheck = type === "array" && Im.List.isList(value) && value.count()
|
let listCheck = type === "array" && Im.List.isList(value) && value.count()
|
||||||
let fileCheck = type === "file" && value instanceof win.File
|
let fileCheck = type === "file" && value instanceof win.File
|
||||||
let booleanCheck = type === "boolean" && (value || value === false)
|
let booleanCheck = type === "boolean" && (value || value === false)
|
||||||
let numberCheck = type === "number" && value
|
let numberCheck = type === "number" && (value || value === 0)
|
||||||
let integerCheck = type === "integer" && value
|
let integerCheck = type === "integer" && (value || value === 0)
|
||||||
|
|
||||||
if ( required && !(stringCheck || arrayCheck || listCheck || fileCheck || booleanCheck || numberCheck || integerCheck) ) {
|
if ( required && !(stringCheck || arrayCheck || listCheck || fileCheck || booleanCheck || numberCheck || integerCheck) ) {
|
||||||
errors.push("Required field is not provided")
|
errors.push("Required field is not provided")
|
||||||
|
|||||||
@@ -700,6 +700,14 @@ describe("utils", function() {
|
|||||||
}
|
}
|
||||||
assertValidateParam(param, ["Required field is not provided"])
|
assertValidateParam(param, ["Required field is not provided"])
|
||||||
|
|
||||||
|
// valid integer, but 0 is falsy in JS
|
||||||
|
param = {
|
||||||
|
required: true,
|
||||||
|
type: "integer",
|
||||||
|
value: 0
|
||||||
|
}
|
||||||
|
assertValidateParam(param, [])
|
||||||
|
|
||||||
// valid integer
|
// valid integer
|
||||||
param = {
|
param = {
|
||||||
required: true,
|
required: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user