Skip to content

Commit

Permalink
Fix test flakes (#65)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
smudge authored Feb 6, 2025
1 parent 8b56245 commit 3fc51c2
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 9 deletions.
1 change: 0 additions & 1 deletion Brewfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
brew 'dep'
brew 'go'
brew 'hub'
38 changes: 30 additions & 8 deletions fakeserver/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,11 +156,22 @@ func TestVisitorConfig(t *testing.T) {
err := json.Unmarshal(w.Body.Bytes(), &visitorConfig)
require.Nil(t, err)

split := visitorConfig.Splits[0]
var control, treatment v4Variant
for _, v := range split.Variants {
if v.Name == "control" {
control = v
}
if v.Name == "treatment" {
treatment = v
}
}

require.Equal(t, 1, visitorConfig.ExperienceSamplingWeight)
require.Equal(t, "test.test_experiment", visitorConfig.Splits[0].Name)
require.Equal(t, 60, visitorConfig.Splits[0].Variants[0].Weight)
require.Equal(t, 40, visitorConfig.Splits[0].Variants[1].Weight)
require.Equal(t, false, visitorConfig.Splits[0].FeatureGate)
require.Equal(t, "test.test_experiment", split.Name)
require.Equal(t, 60, control.Weight)
require.Equal(t, 40, treatment.Weight)
require.Equal(t, false, split.FeatureGate)
require.Equal(t, "00000000-0000-0000-0000-000000000000", visitorConfig.Visitor.ID)
require.Equal(t, "something_something_enabled", visitorConfig.Visitor.Assignments[0].SplitName)
require.Equal(t, "true", visitorConfig.Visitor.Assignments[0].Variant)
Expand All @@ -184,11 +195,22 @@ func TestAppIdentifier(t *testing.T) {
err := json.Unmarshal(w.Body.Bytes(), &visitorConfig)
require.Nil(t, err)

split := visitorConfig.Splits[0]
var control, treatment v4Variant
for _, v := range split.Variants {
if v.Name == "control" {
control = v
}
if v.Name == "treatment" {
treatment = v
}
}

require.Equal(t, 1, visitorConfig.ExperienceSamplingWeight)
require.Equal(t, "test.test_experiment", visitorConfig.Splits[0].Name)
require.Equal(t, 60, visitorConfig.Splits[0].Variants[0].Weight)
require.Equal(t, 40, visitorConfig.Splits[0].Variants[1].Weight)
require.Equal(t, false, visitorConfig.Splits[0].FeatureGate)
require.Equal(t, "test.test_experiment", split.Name)
require.Equal(t, 60, control.Weight)
require.Equal(t, 40, treatment.Weight)
require.Equal(t, false, split.FeatureGate)
require.Equal(t, "00000000-0000-0000-0000-000000000000", visitorConfig.Visitor.ID)
require.Equal(t, "something_something_enabled", visitorConfig.Visitor.Assignments[0].SplitName)
require.Equal(t, "true", visitorConfig.Visitor.Assignments[0].Variant)
Expand Down

0 comments on commit 3fc51c2

Please sign in to comment.