56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
# Как запускать тесты
|
|
|
|
Часть набора проверок HY2XS. Карта всех частей — [docs/testing/README.md](README.md).
|
|
|
|
## Цель набора
|
|
|
|
Зафиксировать checklist для двухслойной схемы «builder layer + runtime/target layer».
|
|
|
|
## Команды
|
|
|
|
```bash
|
|
# Юнит-тесты и типы оркестратора
|
|
cd orchestrator && bun install --frozen-lockfile && bun run check && bun test
|
|
|
|
# Тесты и статический анализ HY2XS admin
|
|
cd apps && go vet ./... && go test ./...
|
|
|
|
# Проверка типов и сборка frontend
|
|
cd apps/frontend && pnpm install --frozen-lockfile && pnpm run verify
|
|
|
|
# Dependency-free контракты панели
|
|
bun test tools/test/frontend-sprite.test.ts tools/test/frontend-contract.test.ts
|
|
|
|
# Runtime-компиляция всех RU/EN-сообщений реальным vue-i18n
|
|
cd apps/frontend && bun test test/i18n-runtime.test.ts
|
|
|
|
# Сверка среды разработки с versions.env (ничего не меняет)
|
|
./tools/dev/doctor.sh
|
|
|
|
# Полный E2E с реальным клиентом Hysteria (Debian 13 amd64; нужен Go)
|
|
HYSTERIA_BIN=/usr/local/bin/hysteria ./tools/test/e2e-hysteria.sh
|
|
|
|
# Production-сборка: прогоняет тесты, резолвер и compatibility gate
|
|
./tools/build/build.sh
|
|
```
|
|
|
|
`build.sh` останавливается, если падают тесты оркестратора, контрактные тесты
|
|
панели, тесты админки или compatibility gate.
|
|
|
|
## Почему контракты панели проверяет Bun, а не vitest
|
|
|
|
Dependency-free модули (`SvgIcon/symbol.ts`, frontend constants и словари
|
|
локализации) намеренно чистые: ни Vite, ни DOM в них нет. Отдельный
|
|
`i18n-runtime.test.ts` запускается после `pnpm install`, потому что обязан
|
|
использовать именно `vue-i18n` из frozen lock-графа. Он обходит каждую строку
|
|
обоих словарей и считает отказом и исключение, и compiler diagnostics в
|
|
`console.error`.
|
|
|
|
Vitest с jsdom не вычисляет `currentColor` и визуальной корректности всё равно
|
|
не доказал бы, зато привёл бы в граф `pnpm audit` — а его порог считается по
|
|
ВСЕМУ lock-файлу frontend — сотню транзитивных зависимостей ради нулевой
|
|
дополнительной гарантии.
|
|
|
|
Визуальная часть остаётся ручной и фиксируется в отчёте приёмки, см.
|
|
[docs/acceptance/README.md](../acceptance/README.md).
|