Skip to content

Commit 942d236

Browse files
committed
Updated test cases
1 parent 030472d commit 942d236

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

splitio/conf/sdkconf_test.go

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,18 @@ import (
44
"testing"
55

66
"github.com/splitio/go-split-commons/v9/conf"
7+
"github.com/splitio/go-split-commons/v9/dtos"
8+
"github.com/splitio/go-toolkit/v5/logging"
79
)
810

11+
// MockLogger implements logging.LoggerInterface for testing
12+
type MockLogger struct {
13+
logging.LoggerInterface
14+
}
15+
16+
func (m *MockLogger) Error(msg ...interface{}) {}
17+
18+
919
func TestSdkConfNormalization(t *testing.T) {
1020
cfg := Default()
1121
cfg.OperationMode = "invalid_mode"
@@ -45,6 +55,94 @@ func TestSdkConfNormalization(t *testing.T) {
4555
}
4656
}
4757

58+
func TestSanitizeGlobalFallbackTreatment(t *testing.T) {
59+
logger := &MockLogger{}
60+
61+
// Test nil input
62+
result := SanitizeGlobalFallbackTreatment(nil, logger)
63+
if result != nil {
64+
t.Error("Expected nil result for nil input")
65+
}
66+
67+
// Test valid treatment
68+
validTreatment := "on"
69+
global := &dtos.FallbackTreatment{Treatment: &validTreatment}
70+
result = SanitizeGlobalFallbackTreatment(global, logger)
71+
if result == nil || *result.Treatment != validTreatment {
72+
t.Error("Expected valid treatment to be returned as is")
73+
}
74+
75+
// Test invalid treatment (too long)
76+
longTreatment := "thisIsAVeryLongTreatmentThatExceedsTheMaxLengthOfOneHundredCharactersAndShouldDefinitelyBeTruncatedBecauseItIsTooLongToBeValid"
77+
global = &dtos.FallbackTreatment{Treatment: &longTreatment}
78+
result = SanitizeGlobalFallbackTreatment(global, logger)
79+
if result != nil {
80+
t.Error("Expected nil result for invalid treatment")
81+
}
82+
83+
// Test invalid treatment (invalid characters)
84+
invalidTreatment := "invalid treatment"
85+
global = &dtos.FallbackTreatment{Treatment: &invalidTreatment}
86+
result = SanitizeGlobalFallbackTreatment(global, logger)
87+
if result != nil {
88+
t.Error("Expected nil result for treatment with invalid characters")
89+
}
90+
}
91+
92+
func TestSanitizeByFlagFallBackTreatment(t *testing.T) {
93+
logger := &MockLogger{}
94+
95+
// Test empty map
96+
result := SanitizeByFlagFallBackTreatment(nil, logger)
97+
if len(result) != 0 {
98+
t.Error("Expected empty map for nil input")
99+
}
100+
101+
// Test valid entries
102+
validTreatment := "on"
103+
validFlag := "feature1"
104+
byFlag := map[string]dtos.FallbackTreatment{
105+
validFlag: {Treatment: &validTreatment},
106+
}
107+
result = SanitizeByFlagFallBackTreatment(byFlag, logger)
108+
if len(result) != 1 || *result[validFlag].Treatment != validTreatment {
109+
t.Error("Expected valid flag and treatment to be included")
110+
}
111+
112+
// Test invalid flag name (contains space)
113+
invalidFlag := "invalid flag"
114+
byFlag = map[string]dtos.FallbackTreatment{
115+
invalidFlag: {Treatment: &validTreatment},
116+
}
117+
result = SanitizeByFlagFallBackTreatment(byFlag, logger)
118+
if len(result) != 0 {
119+
t.Error("Expected invalid flag name to be excluded")
120+
}
121+
122+
// Test invalid treatment
123+
invalidTreatment := "invalid treatment"
124+
byFlag = map[string]dtos.FallbackTreatment{
125+
validFlag: {Treatment: &invalidTreatment},
126+
}
127+
result = SanitizeByFlagFallBackTreatment(byFlag, logger)
128+
if len(result) != 0 {
129+
t.Error("Expected invalid treatment to be excluded")
130+
}
131+
132+
// Test multiple entries with mix of valid and invalid
133+
validTreatment2 := "off"
134+
validFlag2 := "feature2"
135+
byFlag = map[string]dtos.FallbackTreatment{
136+
validFlag: {Treatment: &validTreatment},
137+
validFlag2: {Treatment: &validTreatment2},
138+
invalidFlag: {Treatment: &validTreatment},
139+
}
140+
result = SanitizeByFlagFallBackTreatment(byFlag, logger)
141+
if len(result) != 2 || *result[validFlag].Treatment != validTreatment || *result[validFlag2].Treatment != validTreatment2 {
142+
t.Error("Expected only valid entries to be included")
143+
}
144+
}
145+
48146
func TestValidRates(t *testing.T) {
49147
cfg := Default()
50148
err := Normalize("asd", cfg)

0 commit comments

Comments
 (0)