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:
@@ -3010,6 +3010,7 @@ atomic_write(path, updated_content) # Atomic write, auto-cleanup on error
|
||||
- Every merge request must pass: ruff, type checker, all tests.
|
||||
- Do not merge with failing CI.
|
||||
- Keep pull requests small and focused — one feature or fix per PR.
|
||||
- **E2E test results** (`e2e/results/`) are gitignored — never commit test outputs or HTML reports.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -36,4 +36,27 @@ Requires codecov.io integration with repository.
|
||||
- Follow pattern: `test_<unit>_<scenario>_<expected>`
|
||||
- Mock external dependencies (fail2ban socket, aiohttp calls)
|
||||
- Test happy path AND error/edge cases
|
||||
- See `Docs/Backend-Development.md §9` for detailed testing guide
|
||||
- See `Docs/Backend-Development.md §9` for detailed testing guide
|
||||
|
||||
## E2E Testing
|
||||
|
||||
An end-to-end test suite using **Robot Framework** with the Browser library (Playwright-backed) exercises the full running stack: frontend → backend → fail2ban → database.
|
||||
|
||||
### Running E2E Tests
|
||||
|
||||
```bash
|
||||
make e2e
|
||||
```
|
||||
|
||||
Requires:
|
||||
- `BANGUI_SESSION_SECRET` env var must be set (see [Backend-Development.md](Backend-Development.md) for setup)
|
||||
- Stack must be startable via `make up` (Docker/Podman + compose installed)
|
||||
- `rfbrowser init` is run automatically by the `e2e` target (Playwright browsers downloaded on first run; re-run after `robotframework-browser` version changes)
|
||||
|
||||
### HTML Report
|
||||
|
||||
After a run, open `e2e/results/report.html` in a browser to view the detailed HTML report with screenshots on failure.
|
||||
|
||||
### Writing New E2E Tests
|
||||
|
||||
Place new `.robot` files in `e2e/tests/`. Use `e2e/resources/common.resource` for shared variables and setup/teardown, and `e2e/resources/auth.resource` for the `Login As Admin` keyword.
|
||||
Reference in New Issue
Block a user