Skip to content

Commit a3cef03

Browse files
committed
Fix test flakes: the 'control' and 'treatment' variants are currently not order-guaranteed, and we should not assume an order. Instead, we can match on the name, as all clients should.
1 parent f1701cd commit a3cef03

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

fakeserver/server_test.go

+30-8
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,22 @@ func TestVisitorConfig(t *testing.T) {
156156
err := json.Unmarshal(w.Body.Bytes(), &visitorConfig)
157157
require.Nil(t, err)
158158

159+
split := visitorConfig.Splits[0]
160+
var control, treatment v4Variant
161+
for _, v := range split.Variants {
162+
if v.Name == "control" {
163+
control = v
164+
}
165+
if v.Name == "treatment" {
166+
treatment = v
167+
}
168+
}
169+
159170
require.Equal(t, 1, visitorConfig.ExperienceSamplingWeight)
160-
require.Equal(t, "test.test_experiment", visitorConfig.Splits[0].Name)
161-
require.Equal(t, 60, visitorConfig.Splits[0].Variants[0].Weight)
162-
require.Equal(t, 40, visitorConfig.Splits[0].Variants[1].Weight)
163-
require.Equal(t, false, visitorConfig.Splits[0].FeatureGate)
171+
require.Equal(t, "test.test_experiment", split.Name)
172+
require.Equal(t, 60, control.Weight)
173+
require.Equal(t, 40, treatment.Weight)
174+
require.Equal(t, false, split.FeatureGate)
164175
require.Equal(t, "00000000-0000-0000-0000-000000000000", visitorConfig.Visitor.ID)
165176
require.Equal(t, "something_something_enabled", visitorConfig.Visitor.Assignments[0].SplitName)
166177
require.Equal(t, "true", visitorConfig.Visitor.Assignments[0].Variant)
@@ -184,11 +195,22 @@ func TestAppIdentifier(t *testing.T) {
184195
err := json.Unmarshal(w.Body.Bytes(), &visitorConfig)
185196
require.Nil(t, err)
186197

198+
split := visitorConfig.Splits[0]
199+
var control, treatment v4Variant
200+
for _, v := range split.Variants {
201+
if v.Name == "control" {
202+
control = v
203+
}
204+
if v.Name == "treatment" {
205+
treatment = v
206+
}
207+
}
208+
187209
require.Equal(t, 1, visitorConfig.ExperienceSamplingWeight)
188-
require.Equal(t, "test.test_experiment", visitorConfig.Splits[0].Name)
189-
require.Equal(t, 60, visitorConfig.Splits[0].Variants[0].Weight)
190-
require.Equal(t, 40, visitorConfig.Splits[0].Variants[1].Weight)
191-
require.Equal(t, false, visitorConfig.Splits[0].FeatureGate)
210+
require.Equal(t, "test.test_experiment", split.Name)
211+
require.Equal(t, 60, control.Weight)
212+
require.Equal(t, 40, treatment.Weight)
213+
require.Equal(t, false, split.FeatureGate)
192214
require.Equal(t, "00000000-0000-0000-0000-000000000000", visitorConfig.Visitor.ID)
193215
require.Equal(t, "something_something_enabled", visitorConfig.Visitor.Assignments[0].SplitName)
194216
require.Equal(t, "true", visitorConfig.Visitor.Assignments[0].Variant)

0 commit comments

Comments
 (0)