mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
58 lines
2.0 KiB
Go
58 lines
2.0 KiB
Go
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
// Licensed under the GNU Affero General Public License (AGPL).
|
|
// See License-AGPL.txt in the project root for license information.
|
|
|
|
package experimentstest
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/gitpod-io/gitpod/common-go/experiments"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestClient(t *testing.T) {
|
|
ctx := context.Background()
|
|
experimentName := "foo_bar"
|
|
|
|
client := &Client{
|
|
BoolMatcher: func(ctx context.Context, experiment string, defaultValue bool, attributes experiments.Attributes) bool {
|
|
if experiment == experimentName {
|
|
return true
|
|
}
|
|
return defaultValue
|
|
},
|
|
IntMatcher: func(ctx context.Context, experiment string, defaultValue int, attributes experiments.Attributes) int {
|
|
if experiment == experimentName {
|
|
return 7
|
|
}
|
|
return defaultValue
|
|
},
|
|
FloatMatcher: func(ctx context.Context, experiment string, defaultValue float64, attributes experiments.Attributes) float64 {
|
|
if experiment == experimentName {
|
|
return 133.7
|
|
}
|
|
return defaultValue
|
|
},
|
|
StringMatcher: func(ctx context.Context, experiment, defaultValue string, attributes experiments.Attributes) string {
|
|
if experiment == experimentName {
|
|
return "foo"
|
|
}
|
|
return defaultValue
|
|
},
|
|
}
|
|
|
|
require.Equal(t, false, client.GetBoolValue(ctx, "random", false, experiments.Attributes{}))
|
|
require.Equal(t, true, client.GetBoolValue(ctx, experimentName, false, experiments.Attributes{}))
|
|
|
|
require.Equal(t, 1, client.GetIntValue(ctx, "random", 1, experiments.Attributes{}))
|
|
require.Equal(t, 7, client.GetIntValue(ctx, experimentName, 1, experiments.Attributes{}))
|
|
|
|
require.Equal(t, 1.2, client.GetFloatValue(ctx, "random", 1.2, experiments.Attributes{}))
|
|
require.Equal(t, 133.7, client.GetFloatValue(ctx, experimentName, 1, experiments.Attributes{}))
|
|
|
|
require.Equal(t, "bar", client.GetStringValue(ctx, "random", "bar", experiments.Attributes{}))
|
|
require.Equal(t, "foo", client.GetStringValue(ctx, experimentName, "bar", experiments.Attributes{}))
|
|
}
|