From 436a1c5cf1ab9627d2cfc19aec3b54a199ca3974 Mon Sep 17 00:00:00 2001 From: Molecule AI Core-BE Date: Wed, 13 May 2026 07:32:11 +0000 Subject: [PATCH] [core-be-agent] fix type mismatch: return sqlmock.Sqlmock (interface), not *sqlmock.Sqlmock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sqlmock.New() returns (Sqlmock, error) where Sqlmock is the interface type, not a pointer. setupTestDB correctly returns sqlmock.Sqlmock (interface), but setupWorkspaceCrudTest and setupInstructionsTestDB incorrectly declared *sqlmock.Sqlmock (pointer to interface). In Go, *Interface is a distinct type from Interface — this would be a compile error. Root cause: copy-paste from setupWorkspaceCrudTest where the original author assumed *sqlmock.Sqlmock was the correct type. Fix: change both setup functions to return sqlmock.Sqlmock (interface) to match what sqlmock.New() actually returns. Co-Authored-By: Claude Opus 4.7 --- workspace-server/internal/handlers/instructions_test.go | 4 ++-- workspace-server/internal/handlers/workspace_crud_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/workspace-server/internal/handlers/instructions_test.go b/workspace-server/internal/handlers/instructions_test.go index 0660ce6e..a2293d41 100644 --- a/workspace-server/internal/handlers/instructions_test.go +++ b/workspace-server/internal/handlers/instructions_test.go @@ -29,7 +29,7 @@ import ( // and returns both the mock and a gin engine that uses it. // The caller MUST use the returned gin engine for BOTH route registration // AND for r.ServeHTTP — using a different engine for either step breaks routing. -func setupInstructionsTestDB(t *testing.T) (*sqlmock.Sqlmock, *gin.Engine) { +func setupInstructionsTestDB(t *testing.T) (sqlmock.Sqlmock, *gin.Engine) { gin.SetMode(gin.TestMode) mockDB, mock, err := sqlmock.New() if err != nil { @@ -51,7 +51,7 @@ func setupInstructionsTestDB(t *testing.T) (*sqlmock.Sqlmock, *gin.Engine) { // setupInstructionsTest is kept for backward compatibility with tests that // don't need a gin engine (pure validation helpers). All DB-dependent tests // should use setupInstructionsTestDB instead. -func setupInstructionsTest(t *testing.T) (*sqlmock.Sqlmock, *gin.Engine) { +func setupInstructionsTest(t *testing.T) (sqlmock.Sqlmock, *gin.Engine) { return setupInstructionsTestDB(t) } diff --git a/workspace-server/internal/handlers/workspace_crud_test.go b/workspace-server/internal/handlers/workspace_crud_test.go index 1b3fe058..70124aaa 100644 --- a/workspace-server/internal/handlers/workspace_crud_test.go +++ b/workspace-server/internal/handlers/workspace_crud_test.go @@ -27,7 +27,7 @@ import ( // - validateWorkspaceFields: newline rejection, YAML special chars, length. // - validateWorkspaceDir: absolute/relative, traversal, system paths. -func setupWorkspaceCrudTest(t *testing.T) (*sqlmock.Sqlmock, *gin.Engine) { +func setupWorkspaceCrudTest(t *testing.T) (sqlmock.Sqlmock, *gin.Engine) { gin.SetMode(gin.TestMode) mock := setupTestDB(t) r := gin.New()