From d8de67ae6ce0c158366e7a2206e9d9865c28094c Mon Sep 17 00:00:00 2001 From: LordMathis Date: Thu, 6 Mar 2025 21:40:16 +0100 Subject: [PATCH] Add test postgres docker compose --- server/docker-compose.test.yaml | 21 +++++++++++++++++++++ server/run_integration_tests.sh | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 server/docker-compose.test.yaml create mode 100755 server/run_integration_tests.sh diff --git a/server/docker-compose.test.yaml b/server/docker-compose.test.yaml new file mode 100644 index 0000000..eba3b6d --- /dev/null +++ b/server/docker-compose.test.yaml @@ -0,0 +1,21 @@ +version: "3.8" + +services: + postgres: + image: postgres:17 + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: lemma_test + ports: + - "5432:5432" + volumes: + - postgres-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 5s + timeout: 5s + retries: 5 + +volumes: + postgres-data: diff --git a/server/run_integration_tests.sh b/server/run_integration_tests.sh new file mode 100755 index 0000000..f92dd07 --- /dev/null +++ b/server/run_integration_tests.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e + +COMPOSE_FILE=docker-compose.test.yaml + +if ! docker compose -f $COMPOSE_FILE ps postgres | grep -q "running"; then + docker compose -f $COMPOSE_FILE up -d + until docker compose -f $COMPOSE_FILE exec postgres pg_isready -U postgres; do + sleep 1 + done + echo "PostgreSQL is ready!" +fi + +export LEMMA_TEST_POSTGRES_URL="postgres://postgres:postgres@localhost:5432/lemma_test?sslmode=disable" + +echo "Running integration tests..." +go test -v -tags=integration ./... + +docker compose -f $COMPOSE_FILE down