test(smoke): проверки API Фазы 1 в smoke-тесте
Добавлен блок [2b]: `/api/v1/instance` с созданным главным сервером, наличие ручек серверов в OpenAPI, 401 на `/users/@me` без сессии, отказ регистрации на пустое тело и отклонение обычного GET на `/gateway` (апгрейд обязателен).
This commit is contained in:
@@ -75,6 +75,46 @@ else
|
||||
fail "некорректный ответ на /"
|
||||
fi
|
||||
|
||||
printf '\n[2b] API Фазы 1 (аккаунты, права, gateway)\n'
|
||||
instance="$(curl -fsS "${APP_URL}/api/v1/instance" 2>/dev/null || true)"
|
||||
if printf '%s' "$instance" | grep -q '"registration_enabled"'; then
|
||||
if printf '%s' "$instance" | grep -q '"main_guild_id":"[0-9]'; then
|
||||
pass "/api/v1/instance отвечает, главный сервер создан"
|
||||
else
|
||||
fail "/api/v1/instance: главный сервер не создан (выполните bootstrap-admin)"
|
||||
fi
|
||||
else
|
||||
fail "/api/v1/instance недоступен"
|
||||
fi
|
||||
|
||||
openapi="$(curl -fsS "${APP_URL}/api/v1/openapi.json" 2>/dev/null || true)"
|
||||
if printf '%s' "$openapi" | grep -q '"/guilds"'; then
|
||||
pass "/api/v1/openapi.json содержит ручки серверов"
|
||||
else
|
||||
fail "/api/v1/openapi.json без ручек Фазы 1"
|
||||
fi
|
||||
|
||||
me_status="$(curl -s -o /dev/null -w '%{http_code}' "${APP_URL}/api/v1/users/@me" 2>/dev/null || echo 000)"
|
||||
if [ "$me_status" = "401" ]; then
|
||||
pass "/api/v1/users/@me без сессии отдаёт 401"
|
||||
else
|
||||
fail "/api/v1/users/@me без сессии вернул ${me_status}, ожидался 401"
|
||||
fi
|
||||
|
||||
register_status="$(curl -s -o /dev/null -w '%{http_code}' -X POST "${APP_URL}/api/v1/auth/register" \
|
||||
-H 'Content-Type: application/json' -d '{}' 2>/dev/null || echo 000)"
|
||||
case "$register_status" in
|
||||
4*) pass "регистрация защищена от пустого запроса (${register_status})" ;;
|
||||
*) fail "некорректный ответ регистрации на пустое тело: ${register_status}" ;;
|
||||
esac
|
||||
|
||||
gateway_status="$(curl -s -o /dev/null -w '%{http_code}' "${APP_URL}/gateway" 2>/dev/null || echo 000)"
|
||||
if [ "$gateway_status" = "200" ]; then
|
||||
fail "/gateway отвечает 200 на обычный GET: апгрейд обязателен"
|
||||
else
|
||||
pass "/gateway без апгрейда отклонён (${gateway_status})"
|
||||
fi
|
||||
|
||||
printf '\n[3] Публичный доступ\n'
|
||||
if [ "$SKIP_TLS" = "1" ]; then
|
||||
skip "TLS отключён (--skip-tls): публичная проверка пропущена"
|
||||
|
||||
Reference in New Issue
Block a user