feat: add e2e test suite with Robot Framework
Add e2e/ dir with Robot Framework tests for page loading, ban records, blocklist import, config edit. Add requirements.txt. Update Makefile with test commands. Update .gitignore, backend docs, testing requirements docs.
This commit is contained in:
17
Makefile
17
Makefile
@@ -12,6 +12,7 @@
|
||||
# make logs — tail logs for all debug services
|
||||
# make restart — restart the debug stack
|
||||
# make dev-ban-test — one-command smoke test of the ban pipeline
|
||||
# make e2e — run the Robot Framework E2E test suite
|
||||
# ──────────────────────────────────────────────────────────────
|
||||
|
||||
COMPOSE_FILE := Docker/compose.debug.yml
|
||||
@@ -39,7 +40,7 @@ COMPOSE := $(shell command -v podman-compose 2>/dev/null \
|
||||
# Detect available container runtime (podman or docker).
|
||||
RUNTIME := $(shell command -v podman 2>/dev/null || echo "docker")
|
||||
|
||||
.PHONY: up down build restart logs clean dev-ban-test
|
||||
.PHONY: up down build restart logs clean dev-ban-test e2e
|
||||
|
||||
## Start the debug stack (detached).
|
||||
## Ensures log stub files exist so fail2ban can open them on first start.
|
||||
@@ -71,6 +72,20 @@ clean:
|
||||
$(RUNTIME) rmi $(DEV_IMAGES) 2>/dev/null || true
|
||||
@echo "All debug volumes and local images removed. Run 'make up' to rebuild and start fresh."
|
||||
|
||||
## Run the Robot Framework E2E test suite.
|
||||
## Requires: stack up (make up), BANGUI_SESSION_SECRET env var set.
|
||||
## Installs: pip install -r e2e/requirements.txt && rfbrowser init
|
||||
e2e: up
|
||||
@echo "Waiting for stack to be healthy..."
|
||||
@timeout=120; \
|
||||
until curl -sf http://localhost:8000/api/health > /dev/null 2>&1; do \
|
||||
sleep 5; timeout=$$((timeout-5)); \
|
||||
if [ $$timeout -le 0 ]; then echo "Backend not healthy after 120s"; exit 1; fi; \
|
||||
done
|
||||
pip install -r e2e/requirements.txt -q
|
||||
rfbrowser init --quiet
|
||||
robot --outputdir e2e/results e2e/tests/
|
||||
|
||||
## One-command smoke test for the ban pipeline:
|
||||
## 1. Start fail2ban, 2. write failure lines, 3. check ban status.
|
||||
dev-ban-test:
|
||||
|
||||
Reference in New Issue
Block a user