TGViewer
Work & Beer Balance Work & Beer Balance @workbeer · 1.55K subscribers
Post #274 980
Пишу тут тесты на vitest и обнаружил для себя пару новых приемов:

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);
});
vitest.dev Next generation testing framework powered by Vite
  • 👍 21
  • ❤ 2
  • 👎 2
More from @workbeer
  1. Oct 12, 2026Я слышал раньше истории том что топ сениор тимлид разработчик после выгорания ушел из айти…
  2. Oct 11, 2026Недавно я писал про стартап Emergence AI, который запер нейроночки в виртуальном городке "…
  3. Oct 1, 2026Ищу нового хозяина для своего Starlabs Starlight 12.5" Linux планшета (хочу поменять его н…
  4. Sep 29, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
  5. Sep 29, 2026Ну и если вы пользуетесь продутами Proton - VPN или почтой, то вам будет интересно узнать…
  6. Sep 29, 2026Насколько она умная? В реальном RAG-сервисе ZüriCityGPT на реальном пользовательском трафи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →