Skip to content

build: upgrade vitest to v5 - #96

Closed
agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/vitest-v5
Closed

agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/vitest-v5

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Vitest 5 — текущая основная версия тестового раннера; ветка 4.x больше не развивается. Переход сейчас, пока он не требует правок в тестах, проще, чем потом догонять несколько мажоров.

Что изменилось

  • vitest: ^4.1.12 → ^5.0.5 (релиз 2026-10-15) в apps/dokploy/package.json.
  • bun.lock: меняется только дерево vitest. @vitest/mocker и @vitest/spy обновлены до 5.0.5, tinybench, obug, why-is-node-running и magic-string (для vitest) получили новые мажоры. @vitest/expect, runner, snapshot, utils, pretty-format, tinyrainbow, siginfo и stackback больше не нужны. vite остаётся закреплённым на 8.3.4, vite-tsconfig-paths 4.3.2 не трогали (у него отдельный PR).
  • Конфиг apps/dokploy/__test__/vitest.config.ts и тесты не менялись. Изменения v5, проверенные по руководству по миграции:
    • clearMocks теперь по умолчанию true: перед каждым тестом история вызовов всех моков сбрасывается (реализации остаются). Ни один текущий тест не опирался на вызовы из предыдущих тестов или из beforeAll, поэтому весь набор проходит без clearMocks: false.
    • vi.mock / vi.hoisted вне верхнего уровня модуля теперь вызывают ошибку, а не предупреждение. В наборе все такие вызовы на верхнем уровне.
    • Неожидаемые (без await) resolves/rejects теперь роняют тест. В двух местах traefik-version.test.ts assertion сохраняется в переменную и потом ожидается — это корректно.
    • Удалены test.sequential / describe.sequential, изменились toThrow(""), expect.poll и типы Assertion<R, T> — в наборе не используются.
    • Моки классов теперь наследуют методы прототипа; заголовки test.each форматируются через pretty-format. На набор не повлияло.

Проверки

  • bun run test в apps/dokploy, до (vitest 4.1.12): Test Files 2 failed | 372 passed | 1 skipped, Tests 2 failed | 4281 passed | 5 skipped (4288). Оба падения связаны с окружением: deploy/application.real.test.ts и compose/env-file-literals.test.ts запускают Docker, а скачать образ не удалось (таймаут TLS до Docker Hub).
  • bun run test, после (vitest 5.0.5): Test Files 374 passed | 1 skipped, Tests 4283 passed | 5 skipped (4288), новых падений нет (в этом прогоне Docker смог скачать образы).
  • bun run typecheck (все workspace): без ошибок.
  • bun audit --audit-level=moderate: уязвимостей нет.
  • bunx biome check apps/dokploy/package.json: без замечаний.
  • Локально не запускали bun run build / next build и server:build. Их проверит CI этого PR.
  • Предупреждение Vite про __dirname в vitest.config.ts (configLoader: 'native') было и до обновления; здесь его не трогали.

Что проверить вручную на dev

Ничего: vitest используется только в тестах и в приложение не попадает.

🤖 Generated with Claude Code

agentHits and others added 2 commits October 27, 2026 11:40
Что:
- vitest ^4.1.12 -> ^5.0.5 в apps/dokploy (devDependencies)
- bun.lock: обновлено только дерево vitest (@vitest/mocker, @vitest/spy, tinybench, obug, why-is-node-running, magic-string для vitest); @vitest/expect, runner, snapshot, utils, pretty-format, tinyrainbow, siginfo, stackback больше не нужны
- конфиг и тесты не менялись: в наборе нет удалённых в v5 API (test.sequential, toThrow(""), vi.mock внутри describe, неожидаемые resolves/rejects, expect.poll)

Зачем:
- ветка 4.x больше не получает новых возможностей; v5 работает с закреплённым vite 8.3.4 и Node 24

Риски:
- в v5 clearMocks включён по умолчанию: история вызовов моков сбрасывается перед каждым тестом. Текущие тесты от этого не зависят, но новые тесты должны это учитывать
- только тестовая зависимость, на сборку и работу приложения не влияет

Проверки:
- bun run test (apps/dokploy) до: 2 failed | 4281 passed | 5 skipped (падения из-за Docker: application.real.test.ts и env-file-literals.test.ts не смогли скачать образ)
- bun run test после: 4283 passed | 5 skipped, 0 failed
- bun run typecheck: все 4 workspace без ошибок
- bun audit --audit-level=moderate: уязвимостей нет
- bunx biome check apps/dokploy/package.json: без замечаний

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits

Copy link
Copy Markdown
Collaborator Author

Влито в составе #101 одним PR, чтобы вся первая волна вышла одной версией. Этот PR закрываю без слияния, его коммит есть в #101.

@agentHits agentHits closed this Oct 27, 2026
@agentHits
agentHits deleted the build/vitest-v5 branch October 27, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant