krakenjs/hapi-openapi

Default coercion in Validators.js returns undefined for empty payload

DanielAnfelt opened this issue · 2 comments

When hapi-openapi tries to validate the payload for an endpoint, and the payload is just an empty object, it will replace the empty object with an undefined instead. In my case, that meant that my object which didn't require any property to exist gave me a 422 response back.

The magic lines are currently 269 to 271 where:

            if (Util.isObject(data) && !Object.keys(data).length) {
                return undefined;
            }

I'm not sure what this is meant to accomplish, but it gave me a very unexpected 422 back.

I am also having this issue. My assumption is that if the parameter is in body, the empty object should be returned rather than undefined.

Is this assumption correct?

Is the same true for other values of in?

this issue is resolved with #178