@@ -362,11 +362,30 @@ export interface PassedAssertion<R, T> {
362362 assertionResult : T ;
363363}
364364
365+ /**
366+ * A more minimal, exported interface for `CallableEnvBuilder`. This makes it easier to
367+ * define helper functions in tests which expect a value of a compatible type.
368+ */
369+ export interface AssertableTarget < R > {
370+ passes < AArgs extends readonly any [ ] , AResult > (
371+ assertion : ( val : Awaited < R > , ...assertionArgs : AArgs ) => AResult ,
372+ ...assertionArgs : AArgs
373+ ) : Promise < PassedAssertion < R , AResult > > ;
374+
375+ throws < ErrorType extends ErrorConstructor | Error > (
376+ t : ExecutionContext < unknown > ,
377+ expectations ?: ThrowsExpectation < ErrorType > ,
378+ ) : Promise < ThrownError < ErrorType > > ;
379+ }
380+
365381class CallableEnvBuilder <
366- Args extends readonly any [ ] ,
367- R ,
368- Fs extends ReadonlyArray < AllState [ number ] > ,
369- > extends BaseEnvBuilder < Args , R , Fs > {
382+ Args extends readonly any [ ] ,
383+ R ,
384+ Fs extends ReadonlyArray < AllState [ number ] > ,
385+ >
386+ extends BaseEnvBuilder < Args , R , Fs >
387+ implements AssertableTarget < R >
388+ {
370389 private args : Args ;
371390
372391 constructor (
0 commit comments