@@ -15,30 +15,19 @@ import (
1515 "github.com/google/uuid"
1616 "github.com/gov-dx-sandbox/exchange/consent-engine/v1/models"
1717 "github.com/gov-dx-sandbox/exchange/consent-engine/v1/services"
18+ "github.com/gov-dx-sandbox/exchange/shared/testutils"
1819 "github.com/stretchr/testify/assert"
1920 "github.com/stretchr/testify/require"
20- "gorm.io/driver/postgres"
2121 "gorm.io/gorm"
2222)
2323
24- func setupTestService (t * testing.T ) (* services.ConsentService , sqlmock.Sqlmock ) {
25- db , mock , err := sqlmock .New ()
26- require .NoError (t , err )
27-
28- dialector := postgres .New (postgres.Config {
29- Conn : db ,
30- DriverName : "postgres" ,
31- })
32-
33- gormDB , err := gorm .Open (dialector , & gorm.Config {
34- SkipDefaultTransaction : true ,
35- })
36- require .NoError (t , err )
24+ func setupTestService (t * testing.T ) (* services.ConsentService , sqlmock.Sqlmock , func ()) {
25+ db , mock , cleanup := testutils .SetupMockDB (t )
3726
38- service , err := services .NewConsentService (gormDB , "http://localhost:5173" )
27+ service , err := services .NewConsentService (db , "http://localhost:5173" )
3928 require .NoError (t , err )
4029
41- return service , mock
30+ return service , mock , cleanup
4231}
4332
4433func TestInternalHandler_HealthCheck (t * testing.T ) {
@@ -113,14 +102,16 @@ func TestInternalHandler_CreateConsent_MethodNotAllowed(t *testing.T) {
113102}
114103
115104func TestInternalHandler_NewInternalHandler (t * testing.T ) {
116- service , _ := setupTestService (t )
105+ service , _ , cleanup := setupTestService (t )
106+ defer cleanup ()
117107 handler := NewInternalHandler (service )
118108 assert .NotNil (t , handler )
119109 assert .Equal (t , service , handler .consentService )
120110}
121111
122112func TestInternalHandler_GetConsent_Success_WithOwnerID (t * testing.T ) {
123- service , mock := setupTestService (t )
113+ service , mock , cleanup := setupTestService (t )
114+ defer cleanup ()
124115 handler := NewInternalHandler (service )
125116
126117 id := uuid .New ()
@@ -145,7 +136,8 @@ func TestInternalHandler_GetConsent_Success_WithOwnerID(t *testing.T) {
145136}
146137
147138func TestInternalHandler_GetConsent_Success_WithOwnerEmail (t * testing.T ) {
148- service , mock := setupTestService (t )
139+ service , mock , cleanup := setupTestService (t )
140+ defer cleanup ()
149141 handler := NewInternalHandler (service )
150142
151143 id := uuid .New ()
@@ -166,7 +158,8 @@ func TestInternalHandler_GetConsent_Success_WithOwnerEmail(t *testing.T) {
166158}
167159
168160func TestInternalHandler_GetConsent_NotFound (t * testing.T ) {
169- service , mock := setupTestService (t )
161+ service , mock , cleanup := setupTestService (t )
162+ defer cleanup ()
170163 handler := NewInternalHandler (service )
171164
172165 mock .ExpectQuery (regexp .QuoteMeta (`SELECT * FROM "consent_records"` )).
@@ -182,7 +175,8 @@ func TestInternalHandler_GetConsent_NotFound(t *testing.T) {
182175}
183176
184177func TestInternalHandler_GetConsent_ContextTimeout (t * testing.T ) {
185- service , mock := setupTestService (t )
178+ service , mock , cleanup := setupTestService (t )
179+ defer cleanup ()
186180 handler := NewInternalHandler (service )
187181
188182 ctx , cancel := context .WithTimeout (context .Background (), 1 * time .Nanosecond )
@@ -202,7 +196,8 @@ func TestInternalHandler_GetConsent_ContextTimeout(t *testing.T) {
202196}
203197
204198func TestInternalHandler_CreateConsent_Success (t * testing.T ) {
205- service , mock := setupTestService (t )
199+ service , mock , cleanup := setupTestService (t )
200+ defer cleanup ()
206201 handler := NewInternalHandler (service )
207202
208203 // Mock GetConsentInternalView returning not found - specific query for owner_id and app_id
@@ -235,7 +230,8 @@ func TestInternalHandler_CreateConsent_Success(t *testing.T) {
235230}
236231
237232func TestInternalHandler_CreateConsent_CreateFailed (t * testing.T ) {
238- service , mock := setupTestService (t )
233+ service , mock , cleanup := setupTestService (t )
234+ defer cleanup ()
239235 handler := NewInternalHandler (service )
240236
241237 // Mock GetConsentInternalView returning not found - specific query
@@ -268,7 +264,8 @@ func TestInternalHandler_CreateConsent_CreateFailed(t *testing.T) {
268264}
269265
270266func TestInternalHandler_GetConsent_InternalError (t * testing.T ) {
271- service , mock := setupTestService (t )
267+ service , mock , cleanup := setupTestService (t )
268+ defer cleanup ()
272269 handler := NewInternalHandler (service )
273270
274271 mock .ExpectQuery (regexp .QuoteMeta (`SELECT * FROM "consent_records" WHERE owner_id = $1 AND app_id = $2 ORDER BY created_at DESC` )+ ".*" + regexp .QuoteMeta (` LIMIT $3` )).
@@ -285,7 +282,8 @@ func TestInternalHandler_GetConsent_InternalError(t *testing.T) {
285282}
286283
287284func TestInternalHandler_CreateConsent_InternalError (t * testing.T ) {
288- service , mock := setupTestService (t )
285+ service , mock , cleanup := setupTestService (t )
286+ defer cleanup ()
289287 handler := NewInternalHandler (service )
290288
291289 mock .ExpectQuery (regexp .QuoteMeta (`SELECT * FROM "consent_records" WHERE owner_id = $1 AND app_id = $2 ORDER BY created_at DESC` )+ ".*" + regexp .QuoteMeta (` LIMIT $3` )).
0 commit comments