55 lines
1.6 KiB
Bash
Executable file
55 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Spec 027 Fase 3 — VM123 integration smoke test
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
ENV_FILE="${ENV_FILE:-/opt/ligbox-ops-platform/.env}"
|
|
if [[ -f "$ENV_FILE" ]]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
source "$ENV_FILE"
|
|
set +a
|
|
fi
|
|
|
|
API="${API_URL:-http://10.10.10.122:8080}"
|
|
PASS="${DESK_BOOTSTRAP_PASSWORD:-805353}"
|
|
ODOO_URL="${ODOO_URL:-http://10.10.10.123:8069}"
|
|
|
|
echo "=== verify-vm123-integration.sh ==="
|
|
|
|
fail() { echo "FAIL: $1"; exit 1; }
|
|
ok() { echo "OK: $1"; }
|
|
|
|
python3 "$ROOT/api/tests/test_permissions_027.py" || fail "permissions unit tests"
|
|
ok "RBAC unit tests"
|
|
|
|
curl -sf --max-time 5 "${ODOO_URL}/web/health" | grep -q pass || fail "Odoo health LAN"
|
|
ok "Odoo health ${ODOO_URL}"
|
|
|
|
login_token() {
|
|
curl -sf -X POST "$API/api/v1/auth/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"username\":\"$1\",\"password\":\"$PASS\"}" \
|
|
| python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])"
|
|
}
|
|
|
|
TOKEN=$(login_token root)
|
|
ok "login root"
|
|
|
|
curl -sf -H "Authorization: Bearer $TOKEN" \
|
|
"$API/api/v1/vm123/odoo/role-model/sales_admin" \
|
|
| python3 -c "
|
|
import json,sys
|
|
d=json.load(sys.stdin)
|
|
assert d.get('role')=='sales_admin'
|
|
print('installed', d.get('installed_sales_account_modules'))
|
|
" || fail "odoo role-model"
|
|
ok "GET /vm123/odoo/role-model/sales_admin"
|
|
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
"$API/api/v1/vm123/links/client?domain=test.ligbox.com.br")
|
|
[[ "$code" == "200" ]] || fail "vm123 links (got $code)"
|
|
ok "GET /vm123/links/client"
|
|
|
|
echo "=== verify-vm123-integration.sh PASSED ==="
|