You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
#!/bin/bash |
|
# Run Neo4j integration tests with Docker |
|
# Usage: ./run-tests.sh |
|
|
|
set -e |
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
|
cd "$SCRIPT_DIR" |
|
|
|
echo "Starting Neo4j test database..." |
|
docker compose up -d |
|
|
|
echo "Waiting for Neo4j to be ready..." |
|
for i in {1..30}; do |
|
if docker compose exec -T neo4j-test cypher-shell -u neo4j -p testpassword "RETURN 1" > /dev/null 2>&1; then |
|
echo "Neo4j is ready!" |
|
break |
|
fi |
|
if [ $i -eq 30 ]; then |
|
echo "Timeout waiting for Neo4j" |
|
docker compose logs |
|
docker compose down |
|
exit 1 |
|
fi |
|
echo "Waiting... ($i/30)" |
|
sleep 2 |
|
done |
|
|
|
echo "" |
|
echo "Running tests..." |
|
echo "=================" |
|
|
|
# Set environment variables for tests |
|
export NEO4J_TEST_URI="bolt://localhost:7687" |
|
export NEO4J_TEST_USER="neo4j" |
|
export NEO4J_TEST_PASSWORD="testpassword" |
|
|
|
# Run tests with verbose output |
|
cd ../.. |
|
CGO_ENABLED=0 go test -v ./pkg/neo4j/... -count=1 |
|
TEST_EXIT_CODE=$? |
|
|
|
cd "$SCRIPT_DIR" |
|
|
|
echo "" |
|
echo "=================" |
|
echo "Stopping Neo4j test database..." |
|
docker compose down |
|
|
|
exit $TEST_EXIT_CODE
|
|
|