Files
vector/scripts/e2e-geocode.sh
T

33 lines
1.7 KiB
Bash

#!/bin/sh
# E2E: геокодирование на живом ВЕКТОРЕ
set -e
TOKEN=$(curl -s -m 8 -X POST localhost:8000/api/v1/auth/login \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'username=admin&password=pass123' \
| python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])')
echo "=== geocode «Минск, Ленина 10»:"
curl -s -m 15 "localhost:8000/api/v1/geocode?q=%D0%9C%D0%B8%D0%BD%D1%81%D0%BA%2C%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B0%2010&limit=2" \
-H "Authorization: Bearer $TOKEN" | python3 -m json.tool | head -16
echo "=== без токена — должен быть 401/403:"
curl -s -o /dev/null -w "%{http_code}\n" -m 15 "localhost:8000/api/v1/geocode?q=test"
echo "=== потерянное время: карточка c lost_time сохраняет loss_time:"
curl -s -m 15 -X POST localhost:8000/api/v1/cases \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"age_years": 8, "gender": "м", "lost_time": "2026-09-09T12:00:00", "last_known_place": "Минск, Ленина 10", "elapsed_hours": 3.5, "tnp_lat": 53.9, "tnp_lon": 27.56}' > /tmp/case-created.json
python3 - <<'PY'
import json
d = json.load(open('/tmp/case-created.json'))
cid = d.get('id')
print('case created:', cid)
assert cid
open('/tmp/case-id.txt', 'w').write(cid)
PY
CID=$(cat /tmp/case-id.txt)
curl -s -m 15 "localhost:8000/api/v1/cases/$CID" -H "Authorization: Bearer $TOKEN" | python3 -c '
import json, sys
d = json.load(sys.stdin)
lt = d.get("loss_time") or (d.get("result") or {}).get("loss_time")
detail = d if "loss_time" in d else d
print("loss_time сохранён:", lt)
assert lt, "loss_time ПУСТОЙ — алиас не сработал!"
print("LOST_TIME BUGFIX OK")'