[PIX-13073] fix(test): исправить Redis URL env override в vitest config #913

Closed
andrei wants to merge 1 commit from agent-cto/pix-13073-redis-ci-fix into master
Owner

Что сделано

Удалён hardcoded REDIS_URL из vitest.config.ts env, который переопределял CI env на localhost и приводил к timeout при тестировании.

Зачем

CI env REDIS_URL="redis://redis:6379" (service hostname) переопределялся на localhost из config, что приводило к connection refused в CI. Commit 95781fe64 ошибочно добавил этот URL в config.

План тестирования

Все 765+ тесты проходят локально с REDIS_URL=service hostname (как в CI). Coverage >= threshold.

Где могу ошибаться

  • Проверь что dotenv.config() не конфликтует с CI env (он не конфликтует, потому что .env не существует в CI)
  • В локальной разработке нужен .env файл с REDIS_URL для rate limiting тестов (это expected, dotenv его loads)
## Что сделано Удалён hardcoded REDIS_URL из vitest.config.ts env, который переопределял CI env на localhost и приводил к timeout при тестировании. ## Зачем CI env REDIS_URL="redis://redis:6379" (service hostname) переопределялся на localhost из config, что приводило к connection refused в CI. Commit 95781fe64 ошибочно добавил этот URL в config. ## План тестирования Все 765+ тесты проходят локально с REDIS_URL=service hostname (как в CI). Coverage >= threshold. ## Где могу ошибаться - Проверь что dotenv.config() не конфликтует с CI env (он не конфликтует, потому что .env не существует в CI) - В локальной разработке нужен .env файл с REDIS_URL для rate limiting тестов (это expected, dotenv его loads)
fix(test): исправить Redis URL env override в vitest config, влияющий на CI
Some checks failed
Deploy EuropaTech / Deploy Static to Hetzner (push) Blocked by required conditions
CI / API (push) Failing after 3m0s
Deploy EuropaTech / SEO Health Gate (push) Waiting to run
Deploy EuropaTech / Deploy API to Hetzner (push) Waiting to run
Deploy EuropaTech / Production Release Gate (push) Failing after 4h14m2s
CI / Prisma Migrate Gate (push) Failing after 4h14m26s
CI / Secrets Scan (push) Failing after 4h14m44s
CI / Python SDK (push) Failing after 4h15m10s
CI / Telegram Mini App (push) Failing after 4h15m37s
CI / Contracts (push) Failing after 4h17m31s
CI / App (push) Failing after 4h18m9s
PR Janitor / janitor (pull_request) Failing after 4h19m0s
API Tests (QA suite) / API smoke (Playwright) (pull_request) Successful in 37s
CI / Contracts (pull_request) Successful in 1m57s
CI / Python SDK (pull_request) Successful in 26s
CI / Secrets Scan (pull_request) Successful in 17s
CI / Telegram Mini App (pull_request) Successful in 1m23s
CI / Prisma Migrate Gate (pull_request) Successful in 1m49s
SEO Audit / SEO Audit / europatech (pull_request) Successful in 8s
React Doctor / React Doctor / App (pull_request) Successful in 2m49s
CI / App (pull_request) Successful in 17m12s
CI / API (pull_request) Successful in 19m17s
5a19780aa0
Проблема: commit 95781fe64 добавил REDIS_URL в vitest.config.ts env
с hardcoded localhost value ('redis://:europatech-dev-redis@localhost:6379').
Vitest применяет config.env с приоритетом выше процесса env, поэтому
CI env REDIS_URL='redis://redis:6379' (service hostname) переопределялся
на localhost, что приводило к timeout при подключении в CI.

Решение:
1. Удалить REDIS_URL из vitest.config.ts env
2. Полагаться на dotenv.config() в dotenv.setup.ts
   - Локально: .env файл loaded с credentials
   - В CI: .env не существует, поэтому dotenv не переопределяет процесс env
3. Улучшить dotenv.setup.ts логирование:
   - Удалить warning про отсутствие '@' в REDIS_URL
   - Добавить комментарий про CI vs local behavior

Результат:
- CI REDIS_URL остаётся как service hostname
- Локальный dev может использовать .env с credentials
- Все 765+ тесты проходят с coverage >= threshold

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

⚠️ Конфликт с master — ветку нужно перебазировать вручную. Изменения в master перекрыли затронутые строки.

<!-- janitor-conflict --> ⚠️ Конфликт с master — ветку нужно перебазировать вручную. Изменения в master перекрыли затронутые строки.
andrei closed this pull request 2026-06-26 12:24:56 +00:00
Some checks failed
Deploy EuropaTech / Deploy Static to Hetzner (push) Blocked by required conditions
CI / API (push) Failing after 3m0s
Deploy EuropaTech / SEO Health Gate (push) Waiting to run
Deploy EuropaTech / Deploy API to Hetzner (push) Waiting to run
Deploy EuropaTech / Production Release Gate (push) Failing after 4h14m2s
CI / Prisma Migrate Gate (push) Failing after 4h14m26s
CI / Secrets Scan (push) Failing after 4h14m44s
CI / Python SDK (push) Failing after 4h15m10s
CI / Telegram Mini App (push) Failing after 4h15m37s
CI / Contracts (push) Failing after 4h17m31s
CI / App (push) Failing after 4h18m9s
PR Janitor / janitor (pull_request) Failing after 4h19m0s
API Tests (QA suite) / API smoke (Playwright) (pull_request) Successful in 37s
CI / Contracts (pull_request) Successful in 1m57s
CI / Python SDK (pull_request) Successful in 26s
CI / Secrets Scan (pull_request) Successful in 17s
CI / Telegram Mini App (pull_request) Successful in 1m23s
CI / Prisma Migrate Gate (pull_request) Successful in 1m49s
SEO Audit / SEO Audit / europatech (pull_request) Successful in 8s
React Doctor / React Doctor / App (pull_request) Successful in 2m49s
CI / App (pull_request) Successful in 17m12s
CI / API (pull_request) Successful in 19m17s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
europa-tech-srl/europatech!913
No description provided.