fix(utils): fix validation for required values without specified type (#9863)
Refs #8007
This commit is contained in:
@@ -439,6 +439,19 @@ function validateValueBySchema(value, schema, requiredByParam, bypassRequiredChe
|
|||||||
|
|
||||||
const isValidNullable = nullable && value === null
|
const isValidNullable = nullable && value === null
|
||||||
|
|
||||||
|
// required value is not provided and there's no type defined in the schema
|
||||||
|
const requiredNotProvided =
|
||||||
|
schemaRequiresValue
|
||||||
|
&& !hasValue
|
||||||
|
&& !isValidNullable
|
||||||
|
&& !bypassRequiredCheck
|
||||||
|
&& !type
|
||||||
|
|
||||||
|
if (requiredNotProvided) {
|
||||||
|
errors.push("Required field is not provided")
|
||||||
|
return errors
|
||||||
|
}
|
||||||
|
|
||||||
// will not be included in the request or [schema / value] does not [allow / require] further analysis.
|
// will not be included in the request or [schema / value] does not [allow / require] further analysis.
|
||||||
const noFurtherValidationNeeded =
|
const noFurtherValidationNeeded =
|
||||||
isValidNullable
|
isValidNullable
|
||||||
|
|||||||
@@ -1037,6 +1037,22 @@ describe("utils", () => {
|
|||||||
value = 10
|
value = 10
|
||||||
assertValidateParam(param, value, [])
|
assertValidateParam(param, value, [])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("validates required parameters without schema", () => {
|
||||||
|
// valid value
|
||||||
|
param = {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
value = 123
|
||||||
|
assertValidateParam(param, value, [])
|
||||||
|
|
||||||
|
// missing value
|
||||||
|
param = {
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
value = undefined
|
||||||
|
assertValidateParam(param, value, ["Required field is not provided"])
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("fromJSOrdered", () => {
|
describe("fromJSOrdered", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user