There's a weird edge case in lexicon validation around a schema moving from having no output schema to having an output schema with all optional properties. This is allowed in Lexicon. And it actually works with the current code but not for the reasons we expect.
The existing code will parse the body as an empty array and then treat it as an object and do lexicon checks against it as if it is the parsed JSON of the response.
Instead, we parse an empty body with no content type as undefined, and then in the higher level lexicon assertions (for validating output/input/params), pass instead pass the undefined through as an empty JSON object.
There's a weird edge case in lexicon validation around a schema moving from having no output schema to having an output schema with all optional properties. This is allowed in Lexicon. And it actually works with the current code but not for the reasons we expect.
The existing code will parse the body as an empty array and then treat it as an object and do lexicon checks against it as if it is the parsed JSON of the response.
Instead, we parse an empty body with no content type as
undefined
, and then in the higher level lexicon assertions (for validating output/input/params), pass instead pass theundefined
through as an empty JSON object.