Skip to content

Commit 17d8402

Browse files
committed
refactor: eliminate code duplication in client tests
Remove createCustomTestServer function which was redundant after making setupTestServer accept optional config parameter. This eliminates 36 lines of duplicated server setup code. Changes: - Make setupTestServer accept variadic config parameter - Update all test cases to use setupTestServer directly - Remove createCustomTestServer function entirely Result: -21 net lines of code, improved maintainability, cleaner API.
1 parent 819b015 commit 17d8402

File tree

1 file changed

+15
-36
lines changed

1 file changed

+15
-36
lines changed

pkg/rpc/client/client_test.go

Lines changed: 15 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,23 @@ import (
2323
rpc "github.com/evstack/ev-node/types/pb/evnode/v1/v1connect"
2424
)
2525

26-
// setupTestServer creates a test server with mock store and mock p2p manager
27-
func setupTestServer(t *testing.T, mockStore *mocks.MockStore, mockP2P *mocks.MockP2PRPC) (*httptest.Server, *Client) {
26+
// setupTestServer creates a test server with mock store and mock p2p manager.
27+
// An optional custom config can be provided; if not provided, uses DefaultConfig with test-headers namespace.
28+
func setupTestServer(t *testing.T, mockStore *mocks.MockStore, mockP2P *mocks.MockP2PRPC, customConfig ...config.Config) (*httptest.Server, *Client) {
2829
// Create a new HTTP test server
2930
mux := http.NewServeMux()
3031

3132
// Create the servers
3233
logger := zerolog.Nop()
33-
testConfig := config.DefaultConfig()
34-
testConfig.DA.Namespace = "test-headers"
34+
35+
// Use custom config if provided, otherwise use default
36+
var testConfig config.Config
37+
if len(customConfig) > 0 {
38+
testConfig = customConfig[0]
39+
} else {
40+
testConfig = config.DefaultConfig()
41+
testConfig.DA.Namespace = "test-headers"
42+
}
3543

3644
storeServer := server.NewStoreServer(mockStore, logger)
3745
p2pServer := server.NewP2PServer(mockP2P)
@@ -271,10 +279,8 @@ func TestClientGetHealth(t *testing.T) {
271279
mockStore.On("GetState", mock.Anything).Return(state, nil)
272280

273281
// Create custom test server with aggregator config
274-
testServer := createCustomTestServer(t, mockStore, mockP2P, testConfig)
282+
testServer, client := setupTestServer(t, mockStore, mockP2P, testConfig)
275283
defer testServer.Close()
276-
277-
client := NewClient(testServer.URL)
278284
healthStatus, err := client.GetHealth(context.Background())
279285

280286
require.NoError(t, err)
@@ -297,10 +303,9 @@ func TestClientGetHealth(t *testing.T) {
297303
}
298304
mockStore.On("GetState", mock.Anything).Return(state, nil)
299305

300-
testServer := createCustomTestServer(t, mockStore, mockP2P, testConfig)
306+
testServer, client := setupTestServer(t, mockStore, mockP2P, testConfig)
301307
defer testServer.Close()
302308

303-
client := NewClient(testServer.URL)
304309
healthStatus, err := client.GetHealth(context.Background())
305310

306311
require.NoError(t, err)
@@ -323,10 +328,9 @@ func TestClientGetHealth(t *testing.T) {
323328
}
324329
mockStore.On("GetState", mock.Anything).Return(state, nil)
325330

326-
testServer := createCustomTestServer(t, mockStore, mockP2P, testConfig)
331+
testServer, client := setupTestServer(t, mockStore, mockP2P, testConfig)
327332
defer testServer.Close()
328333

329-
client := NewClient(testServer.URL)
330334
healthStatus, err := client.GetHealth(context.Background())
331335

332336
require.NoError(t, err)
@@ -335,31 +339,6 @@ func TestClientGetHealth(t *testing.T) {
335339
})
336340
}
337341

338-
// createCustomTestServer creates a test server with custom configuration
339-
func createCustomTestServer(t *testing.T, mockStore *mocks.MockStore, mockP2P *mocks.MockP2PRPC, testConfig config.Config) *httptest.Server {
340-
mux := http.NewServeMux()
341-
342-
logger := zerolog.Nop()
343-
storeServer := server.NewStoreServer(mockStore, logger)
344-
p2pServer := server.NewP2PServer(mockP2P)
345-
healthServer := server.NewHealthServer(mockStore, testConfig, logger)
346-
configServer := server.NewConfigServer(testConfig, nil, logger)
347-
348-
storePath, storeHandler := rpc.NewStoreServiceHandler(storeServer)
349-
mux.Handle(storePath, storeHandler)
350-
351-
p2pPath, p2pHandler := rpc.NewP2PServiceHandler(p2pServer)
352-
mux.Handle(p2pPath, p2pHandler)
353-
354-
healthPath, healthHandler := rpc.NewHealthServiceHandler(healthServer)
355-
mux.Handle(healthPath, healthHandler)
356-
357-
configPath, configHandler := rpc.NewConfigServiceHandler(configServer)
358-
mux.Handle(configPath, configHandler)
359-
360-
return httptest.NewServer(h2c.NewHandler(mux, &http2.Server{}))
361-
}
362-
363342
func TestClientGetNamespace(t *testing.T) {
364343
// Create mocks
365344
mockStore := mocks.NewMockStore(t)

0 commit comments

Comments
 (0)