updated code as per the review comment

1. changed struct to httpConfig
2. Removed initLogger func var
3. Removed mocked registryClient from registry test code
This commit is contained in:
MohitKatare-protean
2025-04-01 15:26:38 +05:30
parent 450f13cf34
commit b879cb8faa
3 changed files with 15 additions and 26 deletions

View File

@@ -25,10 +25,10 @@ type Config struct {
Log log.Config `yaml:"log"` Log log.Config `yaml:"log"`
PluginManager *plugin.ManagerConfig `yaml:"pluginManager"` PluginManager *plugin.ManagerConfig `yaml:"pluginManager"`
Modules []module.Config `yaml:"modules"` Modules []module.Config `yaml:"modules"`
HTTP timeouts `yaml:"http"` HTTP httpConfig `yaml:"http"`
} }
type timeouts struct { type httpConfig struct {
Port string `yaml:"port"` Port string `yaml:"port"`
Timeouts timeoutConfig `yaml:"timeout"` Timeouts timeoutConfig `yaml:"timeout"`
} }
@@ -103,7 +103,6 @@ func newServer(ctx context.Context, mgr handler.PluginManager, cfg *Config) (htt
var newManagerFunc = plugin.NewManager var newManagerFunc = plugin.NewManager
var newServerFunc = newServer var newServerFunc = newServer
var initLoggerFunc = log.InitLogger
// run encapsulates the application logic. // run encapsulates the application logic.
func run(ctx context.Context, configPath string) error { func run(ctx context.Context, configPath string) error {
@@ -114,7 +113,7 @@ func run(ctx context.Context, configPath string) error {
return fmt.Errorf("failed to initialize config: %w", err) return fmt.Errorf("failed to initialize config: %w", err)
} }
log.Infof(ctx, "Initializing logger with config: %+v", cfg.Log) log.Infof(ctx, "Initializing logger with config: %+v", cfg.Log)
if err := initLoggerFunc(cfg.Log); err != nil { if err := log.InitLogger(cfg.Log); err != nil {
return fmt.Errorf("failed to initialize logger: %w", err) return fmt.Errorf("failed to initialize logger: %w", err)
} }

View File

@@ -364,7 +364,7 @@ func TestNewServerSuccess(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
cfg := &Config{ cfg := &Config{
Modules: tt.modules, Modules: tt.modules,
HTTP: timeouts{ HTTP: httpConfig{
Port: "8080", Port: "8080",
Timeouts: timeoutConfig{ Timeouts: timeoutConfig{
Read: 5, Read: 5,
@@ -409,7 +409,7 @@ func TestNewServerFailure(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
cfg := &Config{ cfg := &Config{
Modules: tt.modules, Modules: tt.modules,
HTTP: timeouts{ HTTP: httpConfig{
Port: "8080", Port: "8080",
Timeouts: timeoutConfig{ Timeouts: timeoutConfig{
Read: 5, Read: 5,
@@ -441,7 +441,7 @@ func TestValidateConfigSuccess(t *testing.T) {
name: "Valid Config", name: "Valid Config",
cfg: Config{ cfg: Config{
AppName: "TestApp", AppName: "TestApp",
HTTP: timeouts{ HTTP: httpConfig{
Port: "8080", Port: "8080",
}, },
}, },
@@ -469,7 +469,7 @@ func TestValidateConfigFailure(t *testing.T) {
name: "Missing AppName", name: "Missing AppName",
cfg: Config{ cfg: Config{
AppName: "", AppName: "",
HTTP: timeouts{ HTTP: httpConfig{
Port: "8080", Port: "8080",
}, },
}, },
@@ -479,7 +479,7 @@ func TestValidateConfigFailure(t *testing.T) {
name: "Missing Port", name: "Missing Port",
cfg: Config{ cfg: Config{
AppName: "TestApp", AppName: "TestApp",
HTTP: timeouts{ HTTP: httpConfig{
Port: "", Port: "",
}, },
}, },

View File

@@ -13,16 +13,6 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
// MockRegistryClient is a mock implementation of the RegistryClient.
type MockRegistryClient struct {
SubscribeFunc func(ctx context.Context, subscription *model.Subscription) error
}
// Subscribe calls the mock Subscribe function.
func (m *MockRegistryClient) Subscribe(ctx context.Context, subscription *model.Subscription) error {
return m.SubscribeFunc(ctx, subscription)
}
// TestSubscribeSuccess verifies that the Subscribe function succeeds when the server responds with HTTP 200. // TestSubscribeSuccess verifies that the Subscribe function succeeds when the server responds with HTTP 200.
func TestSubscribeSuccess(t *testing.T) { func TestSubscribeSuccess(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -84,11 +74,11 @@ func TestSubscribeFailure(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
mockClient := &MockRegistryClient{ client := NewRegisteryClient(&Config{
SubscribeFunc: func(ctx context.Context, subscription *model.Subscription) error { RetryMax: 1,
return tt.mockError RetryWaitMin: 1 * time.Millisecond,
}, RetryWaitMax: 2 * time.Millisecond,
} })
subscription := &model.Subscription{ subscription := &model.Subscription{
KeyID: "test-key", KeyID: "test-key",
@@ -103,7 +93,7 @@ func TestSubscribeFailure(t *testing.T) {
subscription = &model.Subscription{} // Example of an invalid object subscription = &model.Subscription{} // Example of an invalid object
} }
err := mockClient.Subscribe(context.Background(), subscription) err := client.Subscribe(context.Background(), subscription)
require.Error(t, err) // Directly checking for an error since all cases should fail require.Error(t, err) // Directly checking for an error since all cases should fail
}) })
} }
@@ -217,7 +207,7 @@ func TestLookupFailure(t *testing.T) {
config := &Config{ config := &Config{
RegisteryURL: server.URL, RegisteryURL: server.URL,
RetryMax: 0, // Prevent excessive retries RetryMax: 0,
RetryWaitMin: 1 * time.Millisecond, RetryWaitMin: 1 * time.Millisecond,
RetryWaitMax: 2 * time.Millisecond, RetryWaitMax: 2 * time.Millisecond,
} }