1.
beforeEach и afterEach более не актуальныРаньше я писал так
type TestCtx = {
mock: Mock
}
describe<TestCtx>("Test", (ctx) => {
beforeEach(async (ctx) => {
const mock = await createMock();
ctx.mock = mock;
return async () => {
await mock.destroy();
}
});
it<TestCtx>("uses mock", async ({ mock }) => {
mock.doSmth()
expect(mock.getState).toBe(expectedState);
});
}Теперь можно (а согласно документации даже нужно) вот так
const itWithCtx = test.extend({
mock: async ({}, use) => {
const mock = await createMock();
// Все что до use - это beforeEach
await use(mock);
// Все что до после use - это afterEach
await mock.destroy();
}
})
itWithCtx("uses mock", async ({ mock }) => {
mock.doSmth()
expect(mock.getState).toBe(expectedState);
});