import * as fc from 'fast-check'; import { Step } from '../api/Step'; import { TestLogs } from '../api/TestLogs'; const stepToPromise = (step: Step) => (input: T): PromiseLike => new Promise((resolve, reject) => { step.runStep(input, () => { resolve(true); // Not sure what to do about logging for this. }, reject, TestLogs.init()); }); const sAsyncProperty = (name: string, arbitraries: fc.Arbitrary[], statefulStep: Step, options?: fc.Parameters): Step => { return Step.async((next, die) => { fc.assert(fc.asyncProperty.call(fc, ...arbitraries, stepToPromise(statefulStep)), options).then(next, die); }); }; export { sAsyncProperty };