v2: фикс тестов — URL-encoding кириллицы
This commit is contained in:
+11
-11
@@ -1,32 +1,32 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ═══════════════════════════════════════════════════════════════════════════════
|
|
||||||
# CRUD-тесты через /v2/test/api
|
# CRUD-тесты через /v2/test/api
|
||||||
# Запуск: bash test.sh https://whitelist.nodejsk8s.services.ngcloud.ru
|
# Запуск: bash test.sh https://whitelist.nodejsk8s.services.ngcloud.ru
|
||||||
# ═══════════════════════════════════════════════════════════════════════════════
|
|
||||||
|
|
||||||
BASE="${1:-http://localhost:3000}/v2/test/api"
|
BASE="${1:-http://localhost:3000}/v2/test/api"
|
||||||
P=0 F=0
|
P=0 F=0
|
||||||
|
|
||||||
t() { local name="$1"; shift; if "$@"; then echo "✅ $name"; ((P++)); else echo "❌ $name"; ((F++)); fi; }
|
t() { local name="$1"; shift; if "$@"; then echo "✅ $name"; ((P++)); else echo "❌ $name"; ((F++)); fi; }
|
||||||
ok() { curl -sk "$BASE$1" | python3 -c "import sys,json; d=json.load(sys.stdin); sys.exit(0 if d.get('ok') else 1)"; }
|
ok() { curl -sk --http2 "$BASE$1" | python3 -c "import sys,json; d=json.load(sys.stdin); sys.exit(0 if d.get('ok') else 1)" 2>/dev/null; }
|
||||||
|
fail() { curl -sk --http2 "$BASE$1" | python3 -c "import sys,json; d=json.load(sys.stdin); sys.exit(0 if d.get('ok') else 1)" 2>/dev/null; [ $? -ne 0 ]; }
|
||||||
|
json() { curl -sk --http2 "$BASE$1" | python3 -c "$2" 2>/dev/null; }
|
||||||
|
|
||||||
echo "=== 1. Одна компания ==="
|
echo "=== 1. Одна компания ==="
|
||||||
|
|
||||||
t "создание компании" ok "?action=list&user=u1"
|
t "создание компании" ok "?action=list&user=u1"
|
||||||
|
|
||||||
t "добавление" ok "?action=add&user=u1&cidr=1.2.3.0/24&comment=тест"
|
t "добавление" ok "?action=add&user=u1&cidr=1.2.3.0/24&comment=%D1%82%D0%B5%D1%81%D1%82"
|
||||||
|
|
||||||
t "дубликат" '!' 'ok "?action=add&user=u1&cidr=1.2.3.0/24"'
|
t "дубликат" fail "?action=add&user=u1&cidr=1.2.3.0/24"
|
||||||
|
|
||||||
t "пересечение" '!' 'ok "?action=add&user=u1&cidr=1.2.3.128/25"'
|
t "пересечение" fail "?action=add&user=u1&cidr=1.2.3.128/25"
|
||||||
|
|
||||||
t "запрещённый диапазон" '!' 'ok "?action=add&user=u1&cidr=10.0.0.0/24"'
|
t "запрещённый диапазон" fail "?action=add&user=u1&cidr=10.0.0.0/24"
|
||||||
|
|
||||||
t "/32 работает" ok "?action=add&user=u1&cidr=5.5.5.5"
|
t "/32 работает" ok "?action=add&user=u1&cidr=5.5.5.5"
|
||||||
|
|
||||||
ID=$(curl -sk "$BASE?action=list&user=u1" | python3 -c "import sys,json; print(json.load(sys.stdin)['entries'][0]['id'])")
|
ID=$(json "?action=list&user=u1" "import sys,json; print(json.load(sys.stdin)['entries'][0]['id'])")
|
||||||
|
|
||||||
t "изменение" ok "?action=edit&user=u1&id=$ID&cidr=6.6.6.0/24&comment=изменено"
|
t "изменение" ok "?action=edit&user=u1&id=$ID&cidr=6.6.6.0/24&comment=%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%BE"
|
||||||
|
|
||||||
t "удаление" ok "?action=delete&user=u1&id=$ID"
|
t "удаление" ok "?action=delete&user=u1&id=$ID"
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ echo "=== 2. Две компании ==="
|
|||||||
|
|
||||||
t "добавление в активную" ok "?action=add&user=u2&cidr=7.7.7.0/24"
|
t "добавление в активную" ok "?action=add&user=u2&cidr=7.7.7.0/24"
|
||||||
|
|
||||||
LIST1=$(curl -sk "$BASE?action=list&user=u2" | python3 -c "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
LIST1=$(json "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||||
t "в активной есть запись" [ "$LIST1" -gt 0 ]
|
t "в активной есть запись" [ "$LIST1" -gt 0 ]
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
@@ -45,7 +45,7 @@ echo "=== 3. Имперсонация ==="
|
|||||||
|
|
||||||
t "добавление с impersonated_by" ok "?action=add&user=imp&cidr=8.8.8.0/24"
|
t "добавление с impersonated_by" ok "?action=add&user=imp&cidr=8.8.8.0/24"
|
||||||
|
|
||||||
AUDIT=$(curl -sk "$BASE?action=audit&user=imp" | python3 -c "import sys,json; a=json.load(sys.stdin)['audit']; print(a[0].get('impersonated_by','NONE'))")
|
AUDIT=$(json "?action=audit&user=imp" "import sys,json; a=json.load(sys.stdin)['audit']; print(a[0].get('impersonated_by','NONE'))")
|
||||||
t "impersonated_by в аудите" [ "$AUDIT" = "admin@t.ru" ]
|
t "impersonated_by в аудите" [ "$AUDIT" = "admin@t.ru" ]
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user