krona-staff/scripts
grok 646e8d4f22 test(e2e): стенд с реальным сервером и PostgreSQL 17
Зачем: 156 зелёных тестов на fakeDatabase не поймали, что ключевые
сценарии (создание сотрудника, подтверждение смены, расчёт зарплаты)
всегда падают на реальной PostgreSQL. Нужен приёмочный стенд, который
проверяет продукт как чёрный ящик: настоящий процесс сервера, настоящая
БД, роли как в pilot, но с минимальными привилегиями.

- tests/e2e/harness/global-setup.ts: создаёт БД и роли через
  scripts/test/provision-pg.mjs, применяет миграции ролью krona_migrator
  (NOSUPERUSER), поднимает `tsx src/server.ts` под krona_staff_app с
  токенами/VAPID из crypto.randomBytes; три процесса: с токенами, без
  токенов (как корневой compose.yaml) и отдельный для проверки rate limit;
  логи серверов пишутся в tests/e2e/evidence/.
- *.e2e.ts и отдельный vitest.e2e.config.ts: e2e не попадают в `npm test`,
  поэтому `npm run check` не требует БД и не краснеет от известных дефектов.
- [HARNESS]/[CTRL] — позитивные контроли (версия PG >= 17, атрибуты ролей,
  app-роль не видит schema_migrations, RBAC, уволенный теряет доступ):
  если они красные, красные дефектные сценарии ничего не доказывают.
- scripts/test/run-e2e.mjs: «храповик» известных дефектов по
  tests/e2e/known-defects.json (новый красный или исправленный-но-не-
  вычеркнутый ID = exit 1), таблица e2e-table.md и проверка, что в
  evidence нет ничего похожего на секреты стенда.

Логи названы *.txt, т.к. *.log в .gitignore.
2026-09-26 15:18:31 +07:00
..
test test(e2e): стенд с реальным сервером и PostgreSQL 17 2026-09-26 15:18:31 +07:00
build-terminal-release.ps1 fix: read terminal release version reliably 2026-09-24 17:13:14 +07:00
check-contracts.mjs fix: enforce tenant isolation and runtime contracts 2026-09-18 01:34:12 +07:00
check-migrations.mjs feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
configure-terminal-pilot.ps1 feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
create-app-role.mjs feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
generate-vapid-keys.mjs fix(push): isolate employee data and preserve platform outbox 2026-09-26 12:31:10 +07:00
import-owner-workbook.py fix(import): provision workbook profession catalog 2026-09-24 21:25:13 +07:00
migrate.mjs fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00
migration-checksum.d.mts fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00
migration-checksum.mjs fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00