From 83d63d6d3248666ebb23c7c29f0c58775f277482 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Tue, 2 Dec 2025 04:43:49 +0100 Subject: adapt Bank interface to async --- pbt/ts/src/property.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'pbt/ts/src/property.ts') diff --git a/pbt/ts/src/property.ts b/pbt/ts/src/property.ts index 56683c1..635e731 100644 --- a/pbt/ts/src/property.ts +++ b/pbt/ts/src/property.ts @@ -53,11 +53,11 @@ export function generate(gen: Gen): A { return gen(rng)(100); } -export function property( +export async function property( generator: Gen, predicate: Predicate, shrinker?: Shrinker, -): Property { +): Promise> { return async (seed: number, size: number) => { const rng = new Prando(seed); const gen = generator(rng); @@ -243,9 +243,10 @@ export function shrinkPair( } export const Property = { - run(prop: Property): Promise> { + async run(prop: Promise>): Promise> { const seed = Math.floor(Math.random() * 1000000); - return prop(seed, 0); + const p = await prop; + return await p(seed, 0); }, }; @@ -253,11 +254,14 @@ export const Property = { export function forall( gen: Gen, - k: (a: A) => Property, -): Property { - return (seed: number, size: number) => { + k: (a: A) => Promise>, +): Promise> { + const p = async (seed: number, size: number) => { const rng = new Prando(seed); const a = gen(rng)(size); - return k(a)(seed, size); + const p = await k(a); + return await p(seed, size); }; + + return Promise.resolve(p); } -- cgit v1.3.1