F3.1 CI: corregir asserts PostgreSQL y cubrir merge de catálogo

This commit is contained in:
2026-09-07 15:12:52 -03:00
parent a02a2dc4a8
commit a4b5bdd3a9
+37 -13
View File
@@ -116,26 +116,50 @@ jobs:
run: |
npm run migration:show | tee /tmp/migrations.txt
grep -Fq 'Pending migrations: no' /tmp/migrations.txt
- name: Assert F3.1 structure, merge and Inspector profile
- name: Assert F3.1 structure, merges and Inspector profile
env:
PGPASSWORD: owner_test_password
run: |
set -Eeuo pipefail
PSQL="psql -At -v ON_ERROR_STOP=1 -h 127.0.0.1 -U dhv2_owner -d dhv2_ci"
test "$($PSQL -c \"SELECT count(*) FROM inventory_families WHERE level='INSTALLATION' AND is_active=true\")" = "15"
test "$($PSQL -c \"SELECT count(*) FROM inventory_families WHERE level='SUBINSTALLATION' AND is_active=true\")" = "124"
test "$($PSQL -c \"SELECT count(*) FROM inventory_families WHERE source_reference LIKE 'SYSTEM:F3.1:OTHER%'\")" = "16"
test "$($PSQL -c \"SELECT count(*) FROM finding_categories WHERE lower(code)='app26r2' AND is_active=true\")" = "1"
test "$($PSQL -c \"SELECT count(*) FROM finding_categories WHERE lower(code)='app26' AND is_active=false\")" = "1"
query() {
psql -At -v ON_ERROR_STOP=1 \
-h 127.0.0.1 \
-U dhv2_owner \
-d dhv2_ci \
-c "$1"
}
test "$($PSQL -c \"SELECT count(*) FROM information_schema.tables WHERE table_name='asset_merges'\")" = "1"
test "$($PSQL -c \"SELECT count(*) FROM pg_trigger WHERE tgname='trg_asset_merges_append_only' AND NOT tgisinternal\")" = "1"
test "$($PSQL -c \"SELECT count(*) FROM information_schema.columns WHERE table_name='users' AND column_name IN ('dni','phone','job_title','employee_number')\")" = "4"
test "$($PSQL -c \"SELECT count(*) FROM pg_trigger WHERE tgname IN ('trg_user_roles_inspector_email','trg_users_inspector_email') AND NOT tgisinternal\")" = "2"
assert_eq() {
local expected="$1"
local sql="$2"
local actual
actual="$(query "$sql")"
if [ "$actual" != "$expected" ]; then
echo "ASSERT FAILED"
echo "SQL: $sql"
echo "Expected: $expected"
echo "Actual: $actual"
exit 1
fi
}
test "$($PSQL -c \"SELECT count(*) FROM assets a JOIN asset_types t ON t.id=a.asset_type_id WHERE a.data_origin='IMPORT' AND a.source_name='Tablas de yacimiento(1).xlsx' AND lower(t.code)='yacimiento'\")" = "230"
test "$($PSQL -c \"SELECT count(*) FROM assets WHERE (operational_area_id IS NULL) <> (operator_company_id IS NULL)\")" = "0"
assert_eq 15 "SELECT count(*) FROM inventory_families WHERE level='INSTALLATION' AND is_active=true"
assert_eq 124 "SELECT count(*) FROM inventory_families WHERE level='SUBINSTALLATION' AND is_active=true"
assert_eq 16 "SELECT count(*) FROM inventory_families WHERE source_reference LIKE 'SYSTEM:F3.1:OTHER%'"
assert_eq 1 "SELECT count(*) FROM finding_categories WHERE lower(code)='app26r2' AND is_active=true"
assert_eq 1 "SELECT count(*) FROM finding_categories WHERE lower(code)='app26' AND is_active=false"
assert_eq 1 "SELECT count(*) FROM information_schema.tables WHERE table_name='asset_merges'"
assert_eq 1 "SELECT count(*) FROM pg_trigger WHERE tgname='trg_asset_merges_append_only' AND NOT tgisinternal"
assert_eq 1 "SELECT count(*) FROM information_schema.tables WHERE table_name='finding_catalog_merges'"
assert_eq 1 "SELECT count(*) FROM pg_trigger WHERE tgname='trg_finding_catalog_merges_append_only' AND NOT tgisinternal"
assert_eq 4 "SELECT count(*) FROM information_schema.columns WHERE table_name='users' AND column_name IN ('dni','phone','job_title','employee_number')"
assert_eq 2 "SELECT count(*) FROM pg_trigger WHERE tgname IN ('trg_user_roles_inspector_email','trg_users_inspector_email') AND NOT tgisinternal"
assert_eq 230 "SELECT count(*) FROM assets a JOIN asset_types t ON t.id=a.asset_type_id WHERE a.data_origin='IMPORT' AND a.source_name='Tablas de yacimiento(1).xlsx' AND lower(t.code)='yacimiento'"
assert_eq 0 "SELECT count(*) FROM assets WHERE (operational_area_id IS NULL) <> (operator_company_id IS NULL)"
web:
runs-on: ubuntu-latest