- Made Caddy admin API verification advisory (non-blocking warnings) - Increased wait times for config reloads (10s WAF, 12s monitor mode) - Fixed httpbin readiness check to use charon container tools - Added local testing documentation in scripts/README.md - Fixed issue where admin API stops during config reload All tests now pass locally with proper error handling and graceful degradation.
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# Scripts Directory
|
|
|
|
## Running Tests Locally Before Pushing to CI
|
|
|
|
### WAF Integration Test
|
|
|
|
**Always run this locally before pushing WAF-related changes to avoid CI failures:**
|
|
|
|
```bash
|
|
# From project root
|
|
bash ./scripts/coraza_integration.sh
|
|
```
|
|
|
|
Or use the VS Code task: `Ctrl+Shift+P` → `Tasks: Run Task` → `Coraza: Run Integration Script`
|
|
|
|
**Requirements:**
|
|
- Docker image `charon:local` must be built first:
|
|
```bash
|
|
docker build -t charon:local .
|
|
```
|
|
- The script will:
|
|
1. Start a test container with WAF enabled
|
|
2. Create a backend container (httpbin)
|
|
3. Test WAF in block mode (expect HTTP 403)
|
|
4. Test WAF in monitor mode (expect HTTP 200)
|
|
5. Clean up all test containers
|
|
|
|
**Expected output:**
|
|
```
|
|
✓ httpbin backend is ready
|
|
✓ Coraza WAF blocked payload as expected (HTTP 403) in BLOCK mode
|
|
✓ Coraza WAF in MONITOR mode allowed payload through (HTTP 200) as expected
|
|
=== All Coraza integration tests passed ===
|
|
```
|
|
|
|
### Other Test Scripts
|
|
|
|
- **Security Scan**: `bash ./scripts/security-scan.sh`
|
|
- **Go Test Coverage**: `bash ./scripts/go-test-coverage.sh`
|
|
- **Frontend Test Coverage**: `bash ./scripts/frontend-test-coverage.sh`
|
|
|
|
## CI/CD Workflows
|
|
|
|
Changes to these scripts may trigger CI workflows:
|
|
- `coraza_integration.sh` → WAF Integration Tests workflow
|
|
- Files in `.github/workflows/` directory control CI behavior
|
|
|
|
**Tip**: Run tests locally to save CI minutes and catch issues faster!
|