From c2890e1f3d264126be03c578e4e12ac546c88449 Mon Sep 17 00:00:00 2001 From: Priec Date: Sat, 13 Sep 2025 08:53:26 +0200 Subject: [PATCH] tests via script and make test works now --- server/scripts/reset_test_db.sh | 38 +++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/server/scripts/reset_test_db.sh b/server/scripts/reset_test_db.sh index 3dd557d..48d7144 100755 --- a/server/scripts/reset_test_db.sh +++ b/server/scripts/reset_test_db.sh @@ -1,9 +1,39 @@ #!/bin/bash # scripts/reset_test_db.sh -DATABASE_URL=${TEST_DATABASE_URL:-"postgres://multi_psql_dev:3@localhost:5432/multi_rust_test"} +# Load environment variables from .env_test if it exists +if [ -f .env_test ]; then + export $(grep -v '^#' .env_test | xargs) +fi -echo "Reset db script" -yes | sqlx database drop --database-url "$DATABASE_URL" +DATABASE_URL=${TEST_DATABASE_URL:-"postgres://multi_psql_dev:3@localhost:5432/multi_rust_test"} +echo "Resetting test DB at $DATABASE_URL" + +# Check if database exists and who owns it +DB_NAME=$(echo "$DATABASE_URL" | sed 's|.*/||') +DB_HOST=$(echo "$DATABASE_URL" | sed 's|.*@||' | sed 's|:.*||') +DB_PORT=$(echo "$DATABASE_URL" | sed 's|.*:||' | sed 's|/.*||') +DB_USER=$(echo "$DATABASE_URL" | sed 's|.*://||' | sed 's|:.*||') + +# Check database owner (optional info) +DB_OWNER=$(psql "$DATABASE_URL" -t -c "SELECT pg_catalog.pg_get_userbyid(d.datdba) FROM pg_catalog.pg_database d WHERE d.datname = '$DB_NAME';" 2>/dev/null | xargs) +if [ ! -z "$DB_OWNER" ]; then + echo "Database owner: $DB_OWNER" +fi + +# Force drop database without confirmation +echo "Dropping database..." +sqlx database drop --database-url "$DATABASE_URL" --yes 2>/dev/null || { + # Fallback: use psql to force drop + psql "postgres://$DB_USER@$DB_HOST:$DB_PORT/postgres" -c "DROP DATABASE IF EXISTS \"$DB_NAME\";" 2>/dev/null || true +} + +# Create database +echo "Creating database..." sqlx database create --database-url "$DATABASE_URL" -echo "Test database reset complete." + +# Apply migrations +echo "Applying migrations..." +sqlx migrate run --database-url "$DATABASE_URL" + +echo "✅ Test database reset and migrated."