UNPKG

fast-check

Version:

Property based testing framework for JavaScript (like QuickCheck)

20 lines (19 loc) 934 B
import { array } from '../array.js'; import { record } from '../record.js'; import { uniqueArray } from '../uniqueArray.js'; const safeObjectCreate = Object.create; export function unlinkedEntitiesForEntityGraph(arbitraries, countFor, unicityConstraintsFor, constraints) { const recordModel = safeObjectCreate(null); for (const name in arbitraries) { const entityRecordModel = arbitraries[name]; const entityArbitrary = record(entityRecordModel, constraints); const count = countFor(name); const unicityConstraints = unicityConstraintsFor(name); const arrayConstraints = { minLength: count, maxLength: count }; recordModel[name] = unicityConstraints !== undefined ? uniqueArray(entityArbitrary, { ...arrayConstraints, selector: unicityConstraints }) : array(entityArbitrary, arrayConstraints); } return record(recordModel); }