UNPKG

fast-check

Version:

Property based testing framework for JavaScript (like QuickCheck)

29 lines (28 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialPoolForEntityGraph = initialPoolForEntityGraph; const array_js_1 = require("../array.js"); const tuple_js_1 = require("../tuple.js"); const constant_js_1 = require("../constant.js"); const globals_js_1 = require("../../utils/globals.js"); function canHaveAtLeastOneItem(keys, constraints) { for (const key of keys) { const constraintsOnKey = constraints[key] || {}; if (constraintsOnKey.maxLength === undefined || constraintsOnKey.maxLength > 0) { return true; } } return false; } function initialPoolForEntityGraph(keys, constraints) { if (keys.length === 0) { return (0, constant_js_1.constant)([]); } if (!canHaveAtLeastOneItem(keys, constraints)) { throw new globals_js_1.Error('Contraints on pool must accept at least one entity, maxLength cannot sum to 0'); } const arbitraries = keys.map((key) => (0, array_js_1.array)((0, constant_js_1.constant)(key), constraints[key])); return ((0, tuple_js_1.tuple)(...arbitraries) .map((values) => (0, globals_js_1.safeFlat)(values)) .filter((names) => names.length > 0)); }