Skip to content

Commit 1682033

Browse files
committed
add new etst and format
1 parent c3cbc03 commit 1682033

3 files changed

Lines changed: 55 additions & 13 deletions

File tree

pkg/client/client_test.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3197,7 +3197,6 @@ func (m *MockCmabService) GetDecision(projectConfig config.ProjectConfig, userCo
31973197
return decision, args.Error(1)
31983198
}
31993199

3200-
32013200
func TestHandleDecisionServiceError(t *testing.T) {
32023201
client := OptimizelyClient{
32033202
logger: logging.GetLogger("", ""),
@@ -3380,13 +3379,11 @@ func TestDecideWithCmabUUID(t *testing.T) {
33803379
// This should cover the CMAB UUID handling lines
33813380
}
33823381

3383-
33843382
func (m *MockProjectConfig) GetExperimentByID(experimentID string) (entities.Experiment, error) {
33853383
args := m.Called(experimentID)
33863384
return args.Get(0).(entities.Experiment), args.Error(1)
33873385
}
33883386

3389-
33903387
func TestClientTestSuiteAB(t *testing.T) {
33913388
suite.Run(t, new(ClientTestSuiteAB))
33923389
}
@@ -3454,7 +3451,7 @@ func TestHandleDecisionServiceError_MoreCoverage(t *testing.T) {
34543451
for _, tt := range tests {
34553452
t.Run(tt.name, func(t *testing.T) {
34563453
result := client.handleDecisionServiceError(tt.err, tt.key, userContext)
3457-
3454+
34583455
assert.Equal(t, tt.expected.FlagKey, result.FlagKey)
34593456
assert.Equal(t, tt.expected.UserContext, result.UserContext)
34603457
assert.Equal(t, tt.expected.VariationKey, result.VariationKey)
@@ -3483,10 +3480,10 @@ func TestGetAllOptionsWithCMABOptions(t *testing.T) {
34833480
result := client.getAllOptions(userOptions)
34843481

34853482
// Verify all CMAB-related options are properly merged
3486-
assert.True(t, result.DisableDecisionEvent) // from default
3487-
assert.True(t, result.IgnoreCMABCache) // from default
3488-
assert.True(t, result.ResetCMABCache) // from user
3483+
assert.True(t, result.DisableDecisionEvent) // from default
3484+
assert.True(t, result.IgnoreCMABCache) // from default
3485+
assert.True(t, result.ResetCMABCache) // from user
34893486
assert.True(t, result.InvalidateUserCMABCache) // from user
3490-
assert.False(t, result.EnabledFlagsOnly) // neither
3491-
assert.False(t, result.ExcludeVariables) // neither
3487+
assert.False(t, result.EnabledFlagsOnly) // neither
3488+
assert.False(t, result.ExcludeVariables) // neither
34923489
}

pkg/client/factory_test.go

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,8 @@ func TestStaticClientError(t *testing.T) {
462462
func TestFactoryWithCmabConfig(t *testing.T) {
463463
factory := OptimizelyFactory{}
464464
cmabConfig := cmab.Config{
465-
CacheSize: 100,
466-
CacheTTL: time.Minute,
465+
CacheSize: 100,
466+
CacheTTL: time.Minute,
467467
HTTPTimeout: 30 * time.Second,
468468
RetryConfig: &cmab.RetryConfig{
469469
MaxRetries: 5,
@@ -537,3 +537,48 @@ func TestWithCmabConfigOption(t *testing.T) {
537537
WithCmabConfig(testConfig)(factory)
538538
assert.Equal(t, testConfig, factory.cmabConfig)
539539
}
540+
541+
func TestClientWithCmabConfig(t *testing.T) {
542+
// Test client creation with non-empty CMAB config (tests reflect.DeepEqual path)
543+
cmabConfig := cmab.Config{
544+
CacheSize: 200,
545+
CacheTTL: 5 * time.Minute,
546+
HTTPTimeout: 30 * time.Second,
547+
RetryConfig: &cmab.RetryConfig{
548+
MaxRetries: 5,
549+
InitialBackoff: 200 * time.Millisecond,
550+
MaxBackoff: 20 * time.Second,
551+
BackoffMultiplier: 3.0,
552+
},
553+
}
554+
555+
factory := OptimizelyFactory{
556+
SDKKey: "test_sdk_key",
557+
}
558+
559+
client, err := factory.Client(WithCmabConfig(cmabConfig))
560+
assert.NoError(t, err)
561+
assert.NotNil(t, client)
562+
563+
// Verify the CMAB config was applied by checking if DecisionService exists
564+
// This tests the reflect.DeepEqual check on lines 166-167
565+
assert.NotNil(t, client.DecisionService)
566+
client.Close()
567+
}
568+
569+
func TestClientWithEmptyCmabConfig(t *testing.T) {
570+
// Test client creation with empty CMAB config (tests reflect.DeepEqual returns true)
571+
emptyCmabConfig := cmab.Config{}
572+
573+
factory := OptimizelyFactory{
574+
SDKKey: "test_sdk_key",
575+
}
576+
577+
client, err := factory.Client(WithCmabConfig(emptyCmabConfig))
578+
assert.NoError(t, err)
579+
assert.NotNil(t, client)
580+
581+
// Verify client still works with empty config
582+
assert.NotNil(t, client.DecisionService)
583+
client.Close()
584+
}

pkg/decision/composite_experiment_service_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ func (s *CompositeExperimentTestSuite) TestCmabServiceReturnsError() {
311311
// Test that CMAB service error is properly propagated
312312
mockCmabService := new(MockExperimentDecisionService)
313313
testErr := errors.New("Failed to fetch CMAB data for experiment exp_123")
314-
314+
315315
mockCmabService.On("GetDecision", mock.Anything, mock.Anything, mock.Anything).Return(
316316
ExperimentDecision{},
317317
decide.NewDecisionReasons(s.options),
@@ -320,7 +320,7 @@ func (s *CompositeExperimentTestSuite) TestCmabServiceReturnsError() {
320320

321321
compositeService := &CompositeExperimentService{
322322
experimentServices: []ExperimentService{mockCmabService},
323-
logger: logging.GetLogger("", "CompositeExperimentService"),
323+
logger: logging.GetLogger("", "CompositeExperimentService"),
324324
}
325325

326326
userContext := entities.UserContext{ID: "test_user"}

0 commit comments

Comments
 (0)