From c6771a81959693594a420ceda175fde28222cbbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alvaro=20Cabrera=20Dur=C3=A1n?= <pateketrueke@gmail.com>
Date: Wed, 9 Oct 2019 23:22:34 -0500
Subject: [PATCH] Only merge arrays; fixed max object-props to be generated

---
 src/core/utils.js   | 2 +-
 src/types/object.js | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/core/utils.js b/src/core/utils.js
index 6d46d56d..b22847d0 100644
--- a/src/core/utils.js
+++ b/src/core/utils.js
@@ -178,7 +178,7 @@ function merge(a, b) {
       a[key] = a[key] || [];
       // fix #292 - skip duplicated values from merge object (b)
       b[key].forEach(value => {
-        if (a[key].indexOf(value) === -1) {
+        if (Array.isArray(a[key]) && a[key].indexOf(value) === -1) {
           a[key].push(value);
         }
       });
diff --git a/src/types/object.js b/src/types/object.js
index f4e0f2e4..e26aa5eb 100644
--- a/src/types/object.js
+++ b/src/types/object.js
@@ -50,10 +50,10 @@ function objectType(value, path, resolve, traverseCallback) {
   const fixedProbabilities = optionAPI('alwaysFakeOptionals') || optionAPI('fixedProbabilities') || false;
   const ignoreProperties = optionAPI('ignoreProperties') || [];
 
-  const min = Math.max(value.minProperties || 0, random.number(requiredProperties.length, allProperties.length));
+  const min = Math.max(value.minProperties || 0, requiredProperties.length);
   const max = value.maxProperties || (allProperties.length + (allowsAdditional ? random.number(1, 5) : 0));
 
-  let neededExtras = Math.max(0, min - requiredProperties.length);
+  let neededExtras = Math.max(0, allProperties.length - min);
 
   if (allProperties.length === 1 && !requiredProperties.length) {
     neededExtras = random.number(neededExtras, allProperties.length + (allProperties.length - min));
-- 
GitLab