@unsplash/sum-types-fast-check
Version:
fast-check bindings for @unsplash/sum-types.
10 lines (9 loc) • 356 B
JavaScript
import fc from "fast-check";
export const nullaryArb = fc.constant(null);
export const getArb = (sum) => (arbs) => {
const tags = Object.keys(arbs);
const tagArb = fc.constantFrom(...tags);
return (tagArb
.chain(tag => arbs[tag].map(val => [tag, val]))
.map(([tag, val]) => (val === null ? sum.mk[tag] : sum.mk[tag](val))));
};