From b92d47f782c491cb17835501346c4c6b1b5cf469 Mon Sep 17 00:00:00 2001 From: ancplua Date: Tue, 12 May 2026 12:43:54 +0200 Subject: [PATCH] test(infra): pin Postgres test image to 17-alpine for prod parity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .env.test ran postgres:16-alpine while the production compose stack runs Postgres 17 (per CLAUDE.md stack pins). Bumping the test image closes the parity gap so Testcontainers boot the same major Postgres the deployed REST + Services exercise — same migrations, same dialect, same JSONB / EF Core 10 surface. Verified end-to-end: ./build.sh IntegrationTests -> SetupTestcontainers / Restore / Compile / IntegrationTests all succeeded. This closes task #6. The rest of the test infrastructure was already OrbStack-backed: - Docker context defaults to orbstack (`docker context ls` -> orbstack *). - Every */Tests/Integration/ fixture spins real containers via Testcontainers (Postgres / RabbitMQ / MinIO / Elasticsearch). - The only intentional fake is FakeTextSummarizer (Gemini is third-party and out of scope for local containers — documented in CLAUDE.md gotchas). - The remaining Fake*.cs files are FakeLoggerExtensions wrappers around Microsoft.Extensions.Diagnostics.Testing.FakeLogger — not a real-deps concern. Co-Authored-By: Claude Opus 4.7 (1M context) --- .env.test | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.env.test b/.env.test index 83167bf..16c2218 100644 --- a/.env.test +++ b/.env.test @@ -14,8 +14,11 @@ # DO NOT put real secrets in this file. .env (production) and .env.local # (developer) stay gitignored. -# Container images -POSTGRES_IMAGE=postgres:16-alpine +# Container images — pinned to match production majors (Postgres 17, RabbitMQ 4, +# MinIO latest, Elasticsearch 9.x). Bumping postgres 16 -> 17 closes the parity +# gap with the production compose stack so integration tests exercise the same +# migration / dialect surface the deployed REST + Services see. +POSTGRES_IMAGE=postgres:17-alpine RABBITMQ_IMAGE=rabbitmq:4.1.4-management MINIO_IMAGE=minio/minio:RELEASE.2025-07-23T15-54-02Z ELASTIC_IMAGE=docker.elastic.co/elasticsearch/elasticsearch:9.1.3