feat: Remove unused imports across charging engine modules

- Remove unused IntoResponse/warn/error/ChargingError/validate_* imports from api
- Remove unused AsyncCommands/error/ChargingSession/ErrorContext imports from credit_management
- Remove unused ErrorContext/ChargingError imports from engine
- Remove unused ErrorContext import from rating_billing and prefix unused variables with underscore
- Remove unused ErrorContext import from rating_plans_repo
- Remove unused log_error/validate_amount/validate_im
This commit is contained in:
nutcas3
2026-04-25 01:06:30 +03:00
parent eb8e7bc48a
commit 9d3b8428bd
2 changed files with 25 additions and 8 deletions
@@ -19,12 +19,13 @@ type MockRedisClient struct {
}
func (m *MockRedisClient) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *redis.Cmd {
callArgs := []any{script}
argsList := make([]interface{}, 0, len(keys)+len(args)+1)
argsList = append(argsList, script)
for _, key := range keys {
callArgs = append(callArgs, key)
argsList = append(argsList, key)
}
callArgs = append(callArgs, args...)
return m.Called(callArgs...).Get(0).(*redis.Cmd)
argsList = append(argsList, args...)
return m.Called(argsList...).Get(0).(*redis.Cmd)
}
func (m *MockRedisClient) Del(ctx context.Context, keys ...string) *redis.IntCmd {
@@ -63,7 +64,8 @@ func TestRedisRateLimiter_Allow(t *testing.T) {
cmd := redis.NewCmd(context.Background())
cmd.SetVal(mockResult)
mockClient.On("Eval", mock.AnythingOfType("[]interface {}")).Return(cmd)
// Match the actual call signature: script, key, now, window, limit
mockClient.On("Eval", mock.AnythingOfType("string"), mock.AnythingOfType("string"), mock.AnythingOfType("int64"), mock.AnythingOfType("int64"), mock.AnythingOfType("int64")).Return(cmd)
// Create rate limiter with mock client
limiter := NewRedisRateLimiter(mockClient, "test", tt.limit, tt.window)
@@ -114,7 +116,7 @@ func TestRedisRateLimitMiddleware(t *testing.T) {
// Mock successful rate limit check
cmd := redis.NewCmd(context.Background())
cmd.SetVal([]interface{}{int64(1), int64(4), int64(time.Now().Unix() + 60)})
mockClient.On("Eval", mock.AnythingOfType("[]interface {}")).Return(cmd)
mockClient.On("Eval", mock.AnythingOfType("string"), mock.AnythingOfType("string"), mock.AnythingOfType("int64"), mock.AnythingOfType("int64"), mock.AnythingOfType("int64")).Return(cmd)
// Create rate limiter with mock client
limiter := NewRedisRateLimiter(mockClient, "test", 5, time.Minute)
+17 -2
View File
@@ -202,7 +202,13 @@ func (cs *ChaosService) GetActiveExperiments() []*Experiment {
experiments := make([]*Experiment, 0, len(cs.active))
for _, exp := range cs.active {
experiments = append(experiments, exp)
// Create a copy to avoid race conditions
copy := *exp
if exp.Finished != nil {
finished := *exp.Finished
copy.Finished = &finished
}
experiments = append(experiments, &copy)
}
return experiments
}
@@ -213,7 +219,16 @@ func (cs *ChaosService) GetExperimentStatus(id string) (*Experiment, bool) {
defer cs.mu.RUnlock()
exp, exists := cs.active[id]
return exp, exists
if !exists {
return nil, false
}
// Create a copy to avoid race conditions
copy := *exp
if exp.Finished != nil {
finished := *exp.Finished
copy.Finished = &finished
}
return &copy, true
}
// Middleware function to inject chaos into HTTP requests