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<Context>;
const macro = test.macro((t, _expected: number) => {
expectType<string>(t.context.foo);
});
test.beforeEach(t => {
expectType<Context>(t.context);
});
expectError(test('foo is bar', macro, 'bar'));
anyTest('default context is unknown', t => {
expectType<unknown>(t.context);
});
type Covariant = {
bar: number;
} & Context;
const test2 = anyTest as TestFn<Covariant>;
const hook = (_t: ExecutionContext<Context>) => {};
test2.beforeEach(hook);