From 5df8f20c03884fb63e03450de9b2ce1ba497b928 Mon Sep 17 00:00:00 2001
From: hackerman <3372410+aeneasr@users.noreply.github.com>
Date: Wed, 23 Oct 2019 15:12:18 +0200
Subject: [PATCH] Resolve issue with required field in oneOf (#534)

Having a schema that has a oneOf definition as such:

```
{
  "oneOf": [
    { required: ["foo"], /*...*/ },
    { /*...*/ },
  ]
}
```

causes the changed line to fail with error message `calling includes on undefined`. This does not always happen, as it appears that the "oneOf" field is being picked by random.

This patch simply uses a default empty array if `fixed.required` is undefined, resolving this issue.
---
 src/core/run.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/run.js b/src/core/run.js
index 23ac43e8..4744b6ae 100644
--- a/src/core/run.js
+++ b/src/core/run.js
@@ -169,7 +169,7 @@ function run(refs, schema, container) {
             if (sub.oneOf) {
               mix.forEach(omit => {
                 if (omit !== fixed && omit.required) {
-                  omit.required.filter(required => !fixed.required.includes(required)).forEach(function (key) {
+                  omit.required.filter(required => !(fixed.required || []).includes(required)).forEach(function (key) {
                     delete copy.properties[key];
                   });
                 }
-- 
GitLab