diff --git a/.github/workflows/f3-1-ci.yml b/.github/workflows/f3-1-ci.yml index ba2e221..dddc987 100644 --- a/.github/workflows/f3-1-ci.yml +++ b/.github/workflows/f3-1-ci.yml @@ -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