95 lines
4.0 KiB
Bash
Executable File
95 lines
4.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
ROOT="${ROOT:-/var/www/dhv2.korexlabs.com}"
|
|
cd "$ROOT"
|
|
DB_SERVICE="${DB_SERVICE:-db}"
|
|
API_URL="${API_URL:-http://127.0.0.1:3101/api/v3}"
|
|
|
|
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.2 · 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-2" ]]
|
|
[[ "$WEB_VERSION" == "0.19.3-2" ]]
|
|
echo "API: $API_VERSION"
|
|
echo "WEB: $WEB_VERSION"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · 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.2 · HEALTH =========="
|
|
HEALTH="$(curl -fsS "$API_URL/health")"
|
|
echo "$HEALTH"
|
|
grep -q '"version":"0.19.3-2"' <<<"$HEALTH"
|
|
grep -q '"phase":"D5.3.2"' <<<"$HEALTH"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · ENDPOINTS PROTEGIDOS =========="
|
|
CODE="$(curl -sS -o /tmp/dhv2-d532-enrichment.txt -w '%{http_code}' "$API_URL/asset-types/enrichment-status")"
|
|
[[ "$CODE" == "401" ]]
|
|
echo "/asset-types/enrichment-status sin sesión: 401 OK"
|
|
CODE="$(curl -sS -o /tmp/dhv2-d532-enrich-post.txt -w '%{http_code}' -X POST "$API_URL/asset-types/enrich-defaults")"
|
|
[[ "$CODE" == "401" ]]
|
|
echo "/asset-types/enrich-defaults sin sesión: 401 OK"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · NOMENCLATURA TÉCNICA =========="
|
|
grep -q "code: 'planta'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'bateria'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'tanque'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'separador'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'bomba'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'caldera'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'antorcha'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "code: 'pozo'" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "metodo_extraccion" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "Bombeo mecánico" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
grep -q "Inyector de agua" api-v3/src/asset-master/asset-master-bootstrap.ts
|
|
echo "Familias técnicas y Pozo único con método/función: OK"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · DASHBOARD =========="
|
|
grep -q "Completar catálogo técnico" web-v2/src/pages/AssetTypesPage.tsx
|
|
grep -q "ampliación no destructiva" web-v2/src/pages/AssetTypesPage.tsx
|
|
grep -q "0.19.3-2" web-v2/src/config/version.ts
|
|
echo "Ampliación técnica visible y footer correcto: OK"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · DEMO Y LIMPIEZA =========="
|
|
grep -q "DH-DEV-DEMO:ITN124/2026" api-v3/src/cli/dev-seed-mendoza-demo.ts
|
|
grep -q "DEV-DEMO-TK-57" api-v3/src/cli/dev-seed-mendoza-demo.ts
|
|
grep -q "DEV-DEMO-TK-58" api-v3/src/cli/dev-seed-mendoza-demo.ts
|
|
grep -q -- "--apply DH-DEV-DEMO" scripts/dev-clean-demo.sh
|
|
grep -q "MODO SIMULACIÓN" scripts/dev-clean-demo.sh
|
|
bash -n scripts/dev-seed-mendoza-demo.sh
|
|
bash -n scripts/dev-clean-demo.sh
|
|
echo "Seed marcado + limpiador protegido en dry-run: OK"
|
|
|
|
echo
|
|
echo "========== D5.3.2 · ESTADO DEL MAESTRO =========="
|
|
TYPE_COUNT="$(psql_app 'SELECT COUNT(*) FROM asset_types;')"
|
|
ASSET_COUNT="$(psql_app 'SELECT COUNT(*) FROM assets;')"
|
|
TECH_COUNT="$(psql_app "SELECT COUNT(*) FROM asset_types WHERE code IN ('planta','bateria','tanque','separador','bomba','caldera','antorcha','pozo');")"
|
|
echo "Tipos actuales: $TYPE_COUNT"
|
|
echo "Activos actuales: $ASSET_COUNT"
|
|
echo "Tipos técnicos principales ya instalados: $TECH_COUNT / 8"
|
|
if [[ "$TECH_COUNT" -lt "8" ]]; then
|
|
echo "Pendiente funcional esperado: entrar a Maestro > Tipos y atributos y pulsar 'Completar catálogo técnico'."
|
|
fi
|
|
|
|
echo
|
|
echo "========== D5.3.2 · CONTENEDORES =========="
|
|
docker compose ps -a
|
|
|
|
echo
|
|
echo "ACEPTACIÓN DE FASE D5.3.2: OK"
|