/* eslint-disable @typescript-eslint/no-empty-function */ import {expectError, expectType} from 'tsd'; import type {ExecutionContext, TestFn} from '../../entrypoints/main.mjs'; import anyTest from '../../entrypoints/main.mjs'; type Context = { foo: string; }; const test = anyTest as TestFn; const macro = test.macro((t, _expected: number) => { expectType(t.context.foo); }); test.beforeEach(t => { expectType(t.context); }); // @ts-expect-error TS2769 expectError(test('foo is bar', macro, 'bar')); // eslint-disable-line @typescript-eslint/no-confusing-void-expression anyTest('default context is unknown', t => { expectType(t.context); }); // See https://github.com/avajs/ava/issues/2253 type Covariant = { bar: number; } & Context; const test2 = anyTest as TestFn; const hook = (_t: ExecutionContext) => {}; test2.beforeEach(hook);