From f1701cdf18ef8d2863cfaed7386f84adec1ec244 Mon Sep 17 00:00:00 2001 From: smudge Date: Mon, 3 Feb 2025 16:31:35 -0500 Subject: [PATCH 1/2] Deprecated in favor of go modules, which we already support --- Brewfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Brewfile b/Brewfile index 543a567..c9491e0 100644 --- a/Brewfile +++ b/Brewfile @@ -1,3 +1,2 @@ -brew 'dep' brew 'go' brew 'hub' From a3cef038f41e8df1d862fb8de200afceb280394b Mon Sep 17 00:00:00 2001 From: smudge Date: Mon, 3 Feb 2025 16:32:17 -0500 Subject: [PATCH 2/2] 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. --- fakeserver/server_test.go | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/fakeserver/server_test.go b/fakeserver/server_test.go index d3708c4..b7eaa3c 100644 --- a/fakeserver/server_test.go +++ b/fakeserver/server_test.go @@ -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) @@ -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)