From 82707186a03b6d68e94c22a4920a438508ab49ba Mon Sep 17 00:00:00 2001 From: 0x1d Date: Wed, 5 Nov 2025 13:01:27 +0100 Subject: [PATCH] fix: remove parallel execution from Gin tests to prevent data races - Remove t.Parallel() from tests that use gin.SetMode() - gin.SetMode() modifies global state and is not thread-safe - Tests affected: * TestRequestIDMiddleware_GenerateNewID * TestRequestIDMiddleware_UseExistingID * TestLoggingMiddleware * TestLoggingMiddleware_WithRequestID * TestRequestIDMiddleware_MultipleRequests - Add comments explaining why these tests cannot run in parallel - All tests now pass with race detector enabled (-race flag) This fixes data race warnings that were occurring when running tests with the race detector, specifically when multiple tests tried to set Gin's mode concurrently. --- internal/logger/middleware_test.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/internal/logger/middleware_test.go b/internal/logger/middleware_test.go index f0be374..dfbd5d9 100644 --- a/internal/logger/middleware_test.go +++ b/internal/logger/middleware_test.go @@ -11,8 +11,7 @@ import ( ) func TestRequestIDMiddleware_GenerateNewID(t *testing.T) { - t.Parallel() - + // Cannot run in parallel: gin.SetMode() modifies global state gin.SetMode(gin.TestMode) router := gin.New() router.Use(RequestIDMiddleware()) @@ -41,8 +40,7 @@ func TestRequestIDMiddleware_GenerateNewID(t *testing.T) { } func TestRequestIDMiddleware_UseExistingID(t *testing.T) { - t.Parallel() - + // Cannot run in parallel: gin.SetMode() modifies global state gin.SetMode(gin.TestMode) router := gin.New() router.Use(RequestIDMiddleware()) @@ -196,7 +194,7 @@ func TestUserIDFromContext(t *testing.T) { } func TestLoggingMiddleware(t *testing.T) { - t.Parallel() + // Cannot run in parallel: gin.SetMode() modifies global state // Create a mock logger that records log calls mockLog := &mockLoggerForMiddleware{} @@ -238,7 +236,7 @@ func TestLoggingMiddleware(t *testing.T) { } func TestLoggingMiddleware_WithRequestID(t *testing.T) { - t.Parallel() + // Cannot run in parallel: gin.SetMode() modifies global state // Create a mock logger mockLog := &mockLoggerForMiddleware{} @@ -272,8 +270,7 @@ func TestLoggingMiddleware_WithRequestID(t *testing.T) { } func TestRequestIDMiddleware_MultipleRequests(t *testing.T) { - t.Parallel() - + // Cannot run in parallel: gin.SetMode() modifies global state gin.SetMode(gin.TestMode) router := gin.New() router.Use(RequestIDMiddleware())