export interface TestCase { label : string ; } export function describeEach < T extends TestCase > ( testCases , fn ) { for ( const testCase of testCases ) { describe ( testCase . label , ( ) => fn ( testCase ) ) ; } }