Files
dh-inspeccion-v2/scripts/phase-d5-3-4-acceptance.sh
T

73 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
ROOT="${ROOT:-/var/www/dhv2.korexlabs.com}"
cd "$ROOT"
API_URL="${API_URL:-http://127.0.0.1:3101/api/v3}"
DB_SERVICE="${DB_SERVICE:-db}"
psql_app() {
docker compose exec -T "$DB_SERVICE" sh -lc \
'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -At -v ON_ERROR_STOP=1' <<<"$1"
}
echo "========== D5.3.4 · VERSIONES =========="
API_VERSION="$(node -p "require('./api-v3/package.json').version")"
WEB_VERSION="$(node -p "require('./web-v2/package.json').version")"
[[ "$API_VERSION" == "0.19.3-4" ]]
[[ "$WEB_VERSION" == "0.19.3-4" ]]
echo "API: $API_VERSION"
echo "WEB: $WEB_VERSION"
echo
echo "========== D5.3.4 · MIGRACIONES =========="
MIGRATION_OUTPUT="$(docker compose --profile tools run --rm migrate npm run migration:show 2>&1)"
echo "$MIGRATION_OUTPUT"
grep -q "Pending migrations: no" <<<"$MIGRATION_OUTPUT"
echo
echo "========== D5.3.4 · HEALTH =========="
HEALTH="$(curl -fsS "$API_URL/health")"
echo "$HEALTH"
grep -q '"version":"0.19.3-4"' <<<"$HEALTH"
grep -q '"phase":"D5.3.4"' <<<"$HEALTH"
echo
echo "========== D5.3.4 · ASSET CENTER PROTEGIDO =========="
CODE="$(curl -sS -o /tmp/dhv2-d534-tree.txt -w '%{http_code}' "$API_URL/assets/tree")"
[[ "$CODE" == "401" ]]
echo "/assets/tree sin sesión: 401 OK"
echo
echo "========== D5.3.4 · MODELO D5.3.3 DISPONIBLE =========="
[[ "$(psql_app "SELECT COUNT(*) FROM information_schema.tables WHERE table_name IN ('organization_profiles','organization_memberships','source_documents','asset_source_documents','asset_external_identifiers','area_legal_rights','area_legal_right_organizations');")" == "7" ]]
[[ "$(psql_app "SELECT COUNT(*) FROM information_schema.columns WHERE table_name='assets' AND column_name='operational_status';")" == "1" ]]
echo "Registro documental, Organizaciones y estado operativo: OK"
echo
echo "========== D5.3.4 · API =========="
grep -q "@Get('tree')" api-v3/src/asset-master/assets.controller.ts
grep -q "asset_external_identifiers external_id" api-v3/src/asset-master/assets.service.ts
grep -q 'assetsNeedValidation' api-v3/src/dashboard/dashboard.service.ts
grep -q 'plannedInspections' api-v3/src/dashboard/dashboard.service.ts
echo "Jerarquía, búsqueda por identificador y resumen operativo: OK"
echo
echo "========== D5.3.4 · DASHBOARD / UX =========="
grep -q 'AssetCenterTabs' web-v2/src/pages/AssetsPage.tsx
grep -q 'Pendientes de validar' web-v2/src/pages/AssetsPage.tsx
grep -q 'Agregar activo aquí' web-v2/src/pages/AssetEditorPage.tsx
grep -q 'Documentos y registro' web-v2/src/pages/AssetEditorPage.tsx
grep -q 'Configuración avanzada' web-v2/src/pages/AssetTypesPage.tsx
grep -q 'Roles y permisos' web-v2/src/layout/AppLayout.tsx
grep -q 'Qué requiere atención' web-v2/src/pages/DashboardPage.tsx
grep -q '0.19.3-4' web-v2/src/config/version.ts
echo "Asset Center, alta contextual y administración simplificada: OK"
echo
echo "========== D5.3.4 · CONTENEDORES =========="
docker compose ps -a
echo
echo "ACEPTACIÓN DE FASE D5.3.4: OK"