Correctly validate OAS3 parameters that lack a schema

This commit is contained in:
Kyle Shockey
2017-11-28 22:19:53 -06:00
parent 91e7ade059
commit 40bd720eb4
2 changed files with 7 additions and 7 deletions

View File

@@ -473,6 +473,9 @@ export const validateParam = (param, isXml, isOAS3 = false) => {
let required = param.get("required") let required = param.get("required")
let paramDetails = isOAS3 ? param.get("schema") : param let paramDetails = isOAS3 ? param.get("schema") : param
if(!paramDetails) return errors
let maximum = paramDetails.get("maximum") let maximum = paramDetails.get("maximum")
let minimum = paramDetails.get("minimum") let minimum = paramDetails.get("minimum")
let type = paramDetails.get("type") let type = paramDetails.get("type")
@@ -480,7 +483,7 @@ export const validateParam = (param, isXml, isOAS3 = false) => {
let maxLength = paramDetails.get("maxLength") let maxLength = paramDetails.get("maxLength")
let minLength = paramDetails.get("minLength") let minLength = paramDetails.get("minLength")
let pattern = paramDetails.get("pattern") let pattern = paramDetails.get("pattern")
/* /*
If the parameter is required OR the parameter has a value (meaning optional, but filled in) If the parameter is required OR the parameter has a value (meaning optional, but filled in)
@@ -506,7 +509,7 @@ export const validateParam = (param, isXml, isOAS3 = false) => {
let err = validatePattern(value, pattern) let err = validatePattern(value, pattern)
if (err) errors.push(err) if (err) errors.push(err)
} }
if (maxLength || maxLength === 0) { if (maxLength || maxLength === 0) {
let err = validateMaxLength(value, maxLength) let err = validateMaxLength(value, maxLength)
if (err) errors.push(err) if (err) errors.push(err)

View File

@@ -321,14 +321,11 @@ describe("utils", function() {
} }
it("should check the isOAS3 flag when validating parameters", function() { it("should check the isOAS3 flag when validating parameters", function() {
// This should "skip" validation because there is no `schema.type` property // This should "skip" validation because there is no `schema` property
// and we are telling `validateParam` this is an OAS3 spec // and we are telling `validateParam` this is an OAS3 spec
param = fromJS({ param = fromJS({
value: "", value: "",
required: true, required: true
schema: {
notTheTypeProperty: "string"
}
}) })
result = validateParam( param, false, true ) result = validateParam( param, false, true )
expect( result ).toEqual( [] ) expect( result ).toEqual( [] )