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