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:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user