Files
vigilcare-clinical/scripts/run-phase20-verification.sh
T
voltsrage 2a3ef62a7d
CI / frontend (push) Failing after 57s
CI / backend (push) Failing after 6m27s
Add deployment
2026-08-05 00:26:20 +08:00

46 lines
1.7 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
echo "==> Build contracts"
dotnet build VigilCare.ClinicalContracts
echo "==> Run gateway registry tests"
dotnet test VigilCareClinicalAPI.Tests --filter "FullyQualifiedName~GatewayRegistry" --no-build 2>/dev/null \
|| dotnet test VigilCareClinicalAPI.Tests --filter "FullyQualifiedName~GatewayRegistry"
API="${API_BASE_URL:-http://localhost:5270}"
KEY="${GATEWAY_API_KEY:-dev-gateway-key-change-in-production}"
# Obtain admin JWT (adjust to your local login endpoint)
TOKEN="${ADMIN_JWT:?Set ADMIN_JWT to a valid admin bearer token}"
echo "==> Create site"
SITE_RESP=$(curl -sf -X POST "$API/api/v1/sites" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"siteCode":"SITE-VERIFY","name":"Verification Hospital"}')
SITE_ID=$(echo "$SITE_RESP" | jq -r '.data.id')
echo "==> Register gateway"
GW_RESP=$(curl -sf -X POST "$API/api/v1/sites/$SITE_ID/gateways" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"gatewayCode":"GW-VERIFY-01","department":"ICU"}')
GW_ID=$(echo "$GW_RESP" | jq -r '.data.id')
echo "==> Heartbeat"
curl -sf -X PATCH "$API/api/v1/gateways/$GW_ID/heartbeat" \
-H "X-Api-Key: $KEY" \
-H "X-Gateway-Id: $GW_ID" \
-H "Content-Type: application/json" \
-d '{"status":"ONLINE","bufferDepth":3,"reportedAtUtc":"'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"}'
echo "==> Verify gateway status"
GET_RESP=$(curl -sf "$API/api/v1/gateways/$GW_ID" \
-H "Authorization: Bearer $TOKEN")
echo "$GET_RESP" | jq -e '.data.status == "ONLINE" and .data.reportedBufferDepth == 3'
echo "Phase 20 verification passed."