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"`
|
||||
PluginManager *plugin.ManagerConfig `yaml:"pluginManager"`
|
||||
Modules []module.Config `yaml:"modules"`
|
||||
HTTP timeouts `yaml:"http"`
|
||||
HTTP httpConfig `yaml:"http"`
|
||||
}
|
||||
|
||||
type timeouts struct {
|
||||
type httpConfig struct {
|
||||
Port string `yaml:"port"`
|
||||
Timeouts timeoutConfig `yaml:"timeout"`
|
||||
}
|
||||
@@ -103,7 +103,6 @@ func newServer(ctx context.Context, mgr handler.PluginManager, cfg *Config) (htt
|
||||
|
||||
var newManagerFunc = plugin.NewManager
|
||||
var newServerFunc = newServer
|
||||
var initLoggerFunc = log.InitLogger
|
||||
|
||||
// run encapsulates the application logic.
|
||||
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)
|
||||
}
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@ func TestNewServerSuccess(t *testing.T) {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
cfg := &Config{
|
||||
Modules: tt.modules,
|
||||
HTTP: timeouts{
|
||||
HTTP: httpConfig{
|
||||
Port: "8080",
|
||||
Timeouts: timeoutConfig{
|
||||
Read: 5,
|
||||
@@ -409,7 +409,7 @@ func TestNewServerFailure(t *testing.T) {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
cfg := &Config{
|
||||
Modules: tt.modules,
|
||||
HTTP: timeouts{
|
||||
HTTP: httpConfig{
|
||||
Port: "8080",
|
||||
Timeouts: timeoutConfig{
|
||||
Read: 5,
|
||||
@@ -441,7 +441,7 @@ func TestValidateConfigSuccess(t *testing.T) {
|
||||
name: "Valid Config",
|
||||
cfg: Config{
|
||||
AppName: "TestApp",
|
||||
HTTP: timeouts{
|
||||
HTTP: httpConfig{
|
||||
Port: "8080",
|
||||
},
|
||||
},
|
||||
@@ -469,7 +469,7 @@ func TestValidateConfigFailure(t *testing.T) {
|
||||
name: "Missing AppName",
|
||||
cfg: Config{
|
||||
AppName: "",
|
||||
HTTP: timeouts{
|
||||
HTTP: httpConfig{
|
||||
Port: "8080",
|
||||
},
|
||||
},
|
||||
@@ -479,7 +479,7 @@ func TestValidateConfigFailure(t *testing.T) {
|
||||
name: "Missing Port",
|
||||
cfg: Config{
|
||||
AppName: "TestApp",
|
||||
HTTP: timeouts{
|
||||
HTTP: httpConfig{
|
||||
Port: "",
|
||||
},
|
||||
},
|
||||
|
||||
@@ -13,16 +13,6 @@ import (
|
||||
"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.
|
||||
func TestSubscribeSuccess(t *testing.T) {
|
||||
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 {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
mockClient := &MockRegistryClient{
|
||||
SubscribeFunc: func(ctx context.Context, subscription *model.Subscription) error {
|
||||
return tt.mockError
|
||||
},
|
||||
}
|
||||
client := NewRegisteryClient(&Config{
|
||||
RetryMax: 1,
|
||||
RetryWaitMin: 1 * time.Millisecond,
|
||||
RetryWaitMax: 2 * time.Millisecond,
|
||||
})
|
||||
|
||||
subscription := &model.Subscription{
|
||||
KeyID: "test-key",
|
||||
@@ -103,7 +93,7 @@ func TestSubscribeFailure(t *testing.T) {
|
||||
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
|
||||
})
|
||||
}
|
||||
@@ -217,7 +207,7 @@ func TestLookupFailure(t *testing.T) {
|
||||
|
||||
config := &Config{
|
||||
RegisteryURL: server.URL,
|
||||
RetryMax: 0, // Prevent excessive retries
|
||||
RetryMax: 0,
|
||||
RetryWaitMin: 1 * time.Millisecond,
|
||||
RetryWaitMax: 2 * time.Millisecond,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user