See https://github.com/avajs/ava/pull/2435. This will improve context typing and simplify usage. * [x] Add `test.macro(exec)` and `test.macro({exec, title})`. This will return a `test.Macro` instance which can be passed to `test()` * [x] Remove ability to pass an array of macros or implementations to `test()` * [x] Fix the typing of test implementations (or macro executors) to allow promise-returning, observable returning and any-returning functions