Path: blob/main/components/common-go/experiments/experimentstest/client_test.go
2500 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package experimentstest56import (7"context"8"testing"910"github.com/gitpod-io/gitpod/common-go/experiments"11"github.com/stretchr/testify/require"12)1314func TestClient(t *testing.T) {15ctx := context.Background()16experimentName := "foo_bar"1718client := &Client{19BoolMatcher: func(ctx context.Context, experiment string, defaultValue bool, attributes experiments.Attributes) bool {20if experiment == experimentName {21return true22}23return defaultValue24},25IntMatcher: func(ctx context.Context, experiment string, defaultValue int, attributes experiments.Attributes) int {26if experiment == experimentName {27return 728}29return defaultValue30},31FloatMatcher: func(ctx context.Context, experiment string, defaultValue float64, attributes experiments.Attributes) float64 {32if experiment == experimentName {33return 133.734}35return defaultValue36},37StringMatcher: func(ctx context.Context, experiment, defaultValue string, attributes experiments.Attributes) string {38if experiment == experimentName {39return "foo"40}41return defaultValue42},43}4445require.Equal(t, false, client.GetBoolValue(ctx, "random", false, experiments.Attributes{}))46require.Equal(t, true, client.GetBoolValue(ctx, experimentName, false, experiments.Attributes{}))4748require.Equal(t, 1, client.GetIntValue(ctx, "random", 1, experiments.Attributes{}))49require.Equal(t, 7, client.GetIntValue(ctx, experimentName, 1, experiments.Attributes{}))5051require.Equal(t, 1.2, client.GetFloatValue(ctx, "random", 1.2, experiments.Attributes{}))52require.Equal(t, 133.7, client.GetFloatValue(ctx, experimentName, 1, experiments.Attributes{}))5354require.Equal(t, "bar", client.GetStringValue(ctx, "random", "bar", experiments.Attributes{}))55require.Equal(t, "foo", client.GetStringValue(ctx, experimentName, "bar", experiments.Attributes{}))56}575859