Files
ss-tools/docker-compose.e2e.yml
busya 31680a1bc9 fix(maintenance): auto-expiry + adaptive markdown height + tests
- Auto-expiry: expired events auto-end on GET /events via task manager
- Height: _estimate_markdown_height adapted to unit=8px scale with padding detection
- CRITICAL-1: removed dead import remove_chart_from_position (QA finding)
- CRITICAL-2: added chart alive check in ensure_banner_chart (QA finding)
- CRITICAL-3: fixed test assertions update_markdown_chart → update_banner_on_dashboard
- @POST contract: fixed return range [2,12] → [19,200]
- Tests: 8 new tests (auto-expiry + layout height)
2026-05-25 08:36:33 +03:00

79 lines
2.3 KiB
YAML

# ── ss-tools E2E test stack ─────────────────────────────────
# Isolated Docker Compose stack for Playwright E2E tests.
# Usage:
# docker compose -f docker-compose.e2e.yml up -d
# cd frontend && npm run test:e2e
#
# Environment variables (from .env.current or shell):
# BACKEND_HOST_PORT, POSTGRES_HOST_PORT, etc.
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ss_tools
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "${POSTGRES_HOST_PORT:-5435}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d ss_tools"]
interval: 5s
timeout: 3s
retries: 10
backend:
build:
context: .
dockerfile: docker/backend.Dockerfile
restart: unless-stopped
env_file:
- ./backend/.env
depends_on:
db:
condition: service_healthy
environment:
POSTGRES_URL: postgresql+psycopg2://postgres:postgres@db:5432/ss_tools
DATABASE_URL: postgresql+psycopg2://postgres:postgres@db:5432/ss_tools
TASKS_DATABASE_URL: postgresql+psycopg2://postgres:postgres@db:5432/ss_tools
AUTH_DATABASE_URL: postgresql+psycopg2://postgres:postgres@db:5432/ss_tools
BACKEND_PORT: 8000
INITIAL_ADMIN_CREATE: "true"
INITIAL_ADMIN_USERNAME: admin
INITIAL_ADMIN_PASSWORD: admin123
FEATURES__DATASET_REVIEW: "true"
FEATURES__HEALTH_MONITOR: "true"
ports:
- "${BACKEND_HOST_PORT:-8103}:8000"
volumes:
- e2e_storage:/app/storage
# Playwright runner (CI mode)
e2e-runner:
image: mcr.microsoft.com/playwright:v1.52.0-noble
working_dir: /workspace/frontend
depends_on:
backend:
condition: service_started
environment:
BACKEND_URL: http://backend:8000
FRONTEND_URL: http://frontend:80
E2E_USERNAME: admin
E2E_PASSWORD: admin123
GITEA_URL: https://git.bebesh.ru
GITEA_TOKEN: ${GITEA_TOKEN:-}
CI: "true"
volumes:
- .:/workspace
- /tmp/playwright-report:/workspace/frontend/playwright-report
command: >
sh -c "
npm ci &&
npx playwright install chromium &&
npx playwright test
"
volumes:
e2e_storage: