Skip to content

Commit 9c12fb5

Browse files
committed
Fix failing tests after metrics service changes
1 parent 86f7d7a commit 9c12fb5

File tree

3 files changed

+109
-18
lines changed

3 files changed

+109
-18
lines changed

internal/serve/httphandler/account_handler_test.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/stellar/wallet-backend/internal/db"
2222
"github.com/stellar/wallet-backend/internal/db/dbtest"
2323
"github.com/stellar/wallet-backend/internal/entities"
24+
"github.com/stellar/wallet-backend/internal/metrics"
2425
"github.com/stellar/wallet-backend/internal/services"
2526
"github.com/stellar/wallet-backend/internal/services/servicesmocks"
2627
"github.com/stretchr/testify/assert"
@@ -37,7 +38,10 @@ func TestAccountHandlerRegisterAccount(t *testing.T) {
3738

3839
models, err := data.NewModels(dbConnectionPool)
3940
require.NoError(t, err)
40-
accountService, err := services.NewAccountService(models)
41+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
42+
require.NoError(t, err)
43+
metricsService := metrics.NewMetricsService(sqlxDB)
44+
accountService, err := services.NewAccountService(models, metricsService)
4145
require.NoError(t, err)
4246
handler := &AccountHandler{
4347
AccountService: accountService,
@@ -136,7 +140,10 @@ func TestAccountHandlerDeregisterAccount(t *testing.T) {
136140

137141
models, err := data.NewModels(dbConnectionPool)
138142
require.NoError(t, err)
139-
accountService, err := services.NewAccountService(models)
143+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
144+
require.NoError(t, err)
145+
metricsService := metrics.NewMetricsService(sqlxDB)
146+
accountService, err := services.NewAccountService(models, metricsService)
140147
require.NoError(t, err)
141148
handler := &AccountHandler{
142149
AccountService: accountService,

internal/services/account_service_test.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/stellar/wallet-backend/internal/data"
1010
"github.com/stellar/wallet-backend/internal/db"
1111
"github.com/stellar/wallet-backend/internal/db/dbtest"
12+
"github.com/stellar/wallet-backend/internal/metrics"
1213
"github.com/stretchr/testify/assert"
1314
"github.com/stretchr/testify/require"
1415
)
@@ -23,7 +24,10 @@ func TestAccountRegister(t *testing.T) {
2324

2425
models, err := data.NewModels(dbConnectionPool)
2526
require.NoError(t, err)
26-
accountService, err := NewAccountService(models)
27+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
28+
require.NoError(t, err)
29+
metricsService := metrics.NewMetricsService(sqlxDB)
30+
accountService, err := NewAccountService(models, metricsService)
2731
require.NoError(t, err)
2832

2933
ctx := context.Background()
@@ -49,7 +53,10 @@ func TestAccountDeregister(t *testing.T) {
4953

5054
models, err := data.NewModels(dbConnectionPool)
5155
require.NoError(t, err)
52-
accountService, err := NewAccountService(models)
56+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
57+
require.NoError(t, err)
58+
metricsService := metrics.NewMetricsService(sqlxDB)
59+
accountService, err := NewAccountService(models, metricsService)
5360
require.NoError(t, err)
5461

5562
ctx := context.Background()

internal/services/rpc_service_test.go

+91-14
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ import (
1717
"github.com/stretchr/testify/require"
1818

1919
"github.com/stellar/go/support/log"
20+
"github.com/stellar/wallet-backend/internal/db"
21+
"github.com/stellar/wallet-backend/internal/db/dbtest"
2022
"github.com/stellar/wallet-backend/internal/entities"
23+
"github.com/stellar/wallet-backend/internal/metrics"
2124
"github.com/stellar/wallet-backend/internal/utils"
2225
)
2326

@@ -32,9 +35,18 @@ func (e *errorReader) Close() error {
3235
}
3336

3437
func TestSendRPCRequest(t *testing.T) {
38+
dbt := dbtest.Open(t)
39+
defer dbt.Close()
40+
41+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
42+
require.NoError(t, err)
43+
defer dbConnectionPool.Close()
44+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
45+
require.NoError(t, err)
46+
metricsService := metrics.NewMetricsService(sqlxDB)
3547
mockHTTPClient := utils.MockHTTPClient{}
3648
rpcURL := "http://api.vibrantapp.com/soroban/rpc"
37-
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient)
49+
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient, metricsService)
3850

3951
t.Run("successful", func(t *testing.T) {
4052
httpResponse := http.Response{
@@ -127,9 +139,18 @@ func TestSendRPCRequest(t *testing.T) {
127139
}
128140

129141
func TestSendTransaction(t *testing.T) {
142+
dbt := dbtest.Open(t)
143+
defer dbt.Close()
144+
145+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
146+
require.NoError(t, err)
147+
defer dbConnectionPool.Close()
148+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
149+
require.NoError(t, err)
150+
metricsService := metrics.NewMetricsService(sqlxDB)
130151
mockHTTPClient := utils.MockHTTPClient{}
131152
rpcURL := "http://api.vibrantapp.com/soroban/rpc"
132-
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient)
153+
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient, metricsService)
133154

134155
t.Run("successful", func(t *testing.T) {
135156
transactionXDR := "AAAAAgAAAABYJgX6SmA2tGVDv3GXfOWbkeL869ahE0e5DG9HnXQw/QAAAGQAAjpnAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAACxaDFEbbssZfrbRgFxTYIygITSQxsUpDmneN2gAZBEFQAAAAAAAAAABfXhAAAAAAAAAAAA"
@@ -188,9 +209,18 @@ func TestSendTransaction(t *testing.T) {
188209
}
189210

190211
func TestGetTransaction(t *testing.T) {
212+
dbt := dbtest.Open(t)
213+
defer dbt.Close()
214+
215+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
216+
require.NoError(t, err)
217+
defer dbConnectionPool.Close()
218+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
219+
require.NoError(t, err)
220+
metricsService := metrics.NewMetricsService(sqlxDB)
191221
mockHTTPClient := utils.MockHTTPClient{}
192222
rpcURL := "http://api.vibrantapp.com/soroban/rpc"
193-
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient)
223+
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient, metricsService)
194224

195225
t.Run("successful", func(t *testing.T) {
196226
transactionHash := "6bc97bddc21811c626839baf4ab574f4f9f7ddbebb44d286ae504396d4e752da"
@@ -264,9 +294,18 @@ func TestGetTransaction(t *testing.T) {
264294
}
265295

266296
func TestGetTransactions(t *testing.T) {
297+
dbt := dbtest.Open(t)
298+
defer dbt.Close()
299+
300+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
301+
require.NoError(t, err)
302+
defer dbConnectionPool.Close()
303+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
304+
require.NoError(t, err)
305+
metricsService := metrics.NewMetricsService(sqlxDB)
267306
mockHTTPClient := utils.MockHTTPClient{}
268307
rpcURL := "http://api.vibrantapp.com/soroban/rpc"
269-
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient)
308+
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient, metricsService)
270309

271310
t.Run("rpc_request_fails", func(t *testing.T) {
272311
mockHTTPClient.
@@ -327,9 +366,18 @@ func TestGetTransactions(t *testing.T) {
327366
}
328367

329368
func TestSendGetHealth(t *testing.T) {
369+
dbt := dbtest.Open(t)
370+
defer dbt.Close()
371+
372+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
373+
require.NoError(t, err)
374+
defer dbConnectionPool.Close()
375+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
376+
require.NoError(t, err)
377+
metricsService := metrics.NewMetricsService(sqlxDB)
330378
mockHTTPClient := utils.MockHTTPClient{}
331379
rpcURL := "http://api.vibrantapp.com/soroban/rpc"
332-
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient)
380+
rpcService, _ := NewRPCService(rpcURL, &mockHTTPClient, metricsService)
333381

334382
t.Run("successful", func(t *testing.T) {
335383
payload := map[string]interface{}{
@@ -374,12 +422,19 @@ func TestSendGetHealth(t *testing.T) {
374422
}
375423

376424
func TestTrackRPCServiceHealth_HealthyService(t *testing.T) {
377-
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
378-
defer cancel()
425+
dbt := dbtest.Open(t)
426+
defer dbt.Close()
427+
428+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
429+
require.NoError(t, err)
430+
defer dbConnectionPool.Close()
431+
sqlxDB, err := dbConnectionPool.SqlxDB(context.Background())
432+
require.NoError(t, err)
433+
metricsService := metrics.NewMetricsService(sqlxDB)
379434

380435
mockHTTPClient := &utils.MockHTTPClient{}
381436
rpcURL := "http://test-url-track-rpc-service-health"
382-
rpcService, err := NewRPCService(rpcURL, mockHTTPClient)
437+
rpcService, err := NewRPCService(rpcURL, mockHTTPClient, metricsService)
383438
require.NoError(t, err)
384439

385440
healthResult := entities.RPCGetHealthResult{
@@ -390,6 +445,8 @@ func TestTrackRPCServiceHealth_HealthyService(t *testing.T) {
390445
}
391446

392447
// Mock the HTTP response for GetHealth
448+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
449+
defer cancel()
393450
mockResponse := &http.Response{
394451
Body: io.NopCloser(bytes.NewBuffer([]byte(`{
395452
"jsonrpc": "2.0",
@@ -419,14 +476,24 @@ func TestTrackRPCServiceHealth_HealthyService(t *testing.T) {
419476
}
420477

421478
func TestTrackRPCServiceHealth_UnhealthyService(t *testing.T) {
479+
ctx, cancel := context.WithTimeout(context.Background(), 70*time.Second)
480+
defer cancel()
481+
482+
dbt := dbtest.Open(t)
483+
defer dbt.Close()
484+
485+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
486+
require.NoError(t, err)
487+
defer dbConnectionPool.Close()
488+
sqlxDB, err := dbConnectionPool.SqlxDB(ctx)
489+
require.NoError(t, err)
490+
metricsService := metrics.NewMetricsService(sqlxDB)
422491
getLogs := log.DefaultLogger.StartTest(log.WarnLevel)
423492

424493
mockHTTPClient := &utils.MockHTTPClient{}
425494
rpcURL := "http://test-url-track-rpc-service-health"
426-
rpcService, err := NewRPCService(rpcURL, mockHTTPClient)
495+
rpcService, err := NewRPCService(rpcURL, mockHTTPClient, metricsService)
427496
require.NoError(t, err)
428-
ctx, cancel := context.WithTimeout(context.Background(), 70*time.Second)
429-
defer cancel()
430497

431498
// Mock error response for GetHealth with a valid http.Response
432499
mockResponse := &http.Response{
@@ -457,12 +524,22 @@ func TestTrackRPCServiceHealth_UnhealthyService(t *testing.T) {
457524
}
458525

459526
func TestTrackRPCService_ContextCancelled(t *testing.T) {
527+
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
528+
defer cancel()
529+
530+
dbt := dbtest.Open(t)
531+
defer dbt.Close()
532+
533+
dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN)
534+
require.NoError(t, err)
535+
defer dbConnectionPool.Close()
536+
sqlxDB, err := dbConnectionPool.SqlxDB(ctx)
537+
require.NoError(t, err)
538+
metricsService := metrics.NewMetricsService(sqlxDB)
460539
mockHTTPClient := &utils.MockHTTPClient{}
461540
rpcURL := "http://test-url-track-rpc-service-health"
462-
rpcService, err := NewRPCService(rpcURL, mockHTTPClient)
541+
rpcService, err := NewRPCService(rpcURL, mockHTTPClient, metricsService)
463542
require.NoError(t, err)
464-
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
465-
defer cancel()
466543

467544
rpcService.TrackRPCServiceHealth(ctx)
468545

0 commit comments

Comments
 (0)