add testing for redis with mock

This commit is contained in:
maxlerebourg
2026-07-25 16:30:36 +02:00
parent 6958432a7c
commit 1e0dadedb2
5 changed files with 109 additions and 4 deletions
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
# shellcheck source=../../lib/common.sh
source "$HERE/../../lib/common.sh"
SCENARIO=redis
# Redis cache check: the mock returns "t" (banned) for 1.2.3.4 and "f" (not
# banned) for 1.2.3.5. All other IPs return a miss, which falls through to the
# LAPI (no decision → allowed). This proves the plugin reads cached decisions
# from Redis correctly.
body() {
echo "[$SCENARIO] cached clean IP must pass"
assert_status "http://127.0.0.1:${WEB_PORT}/foo" 200 -H "X-Forwarded-For: 1.2.3.4"
echo "[$SCENARIO] cached banned IP must be blocked"
assert_status "http://127.0.0.1:${WEB_PORT}/foo" 403 -H "X-Forwarded-For: 1.2.3.5"
echo "[$SCENARIO] unknown IP (redis miss) must fall through to LAPI and pass"
assert_status "http://127.0.0.1:${WEB_PORT}/foo" 200 -H "X-Forwarded-For: 1.2.3.6"
}
run_scenario "$SCENARIO" "$HERE" body