Files
grafana/pkg/services/featuremgmt/openfeature_test.go
T
Tania e079cb3738 Simplify open feature setup (#107632)
* Simplify open feature setup

* Fix linter issues

* Apply review feedback

* Fix integration tests setup
2025-07-14 16:22:04 +02:00

60 lines
1.5 KiB
Go

package featuremgmt
import (
"net/url"
"testing"
"github.com/grafana/grafana/pkg/setting"
gofeatureflag "github.com/open-feature/go-sdk-contrib/providers/go-feature-flag/pkg"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestCreateProvider(t *testing.T) {
u, err := url.Parse("http://localhost:1031")
require.NoError(t, err)
testCases := []struct {
name string
cfg setting.OpenFeatureSettings
expectedProvider string
}{
{
name: "static provider",
expectedProvider: setting.StaticProviderType,
},
{
name: "goff provider",
cfg: setting.OpenFeatureSettings{
ProviderType: setting.GOFFProviderType,
URL: u,
TargetingKey: "grafana",
},
expectedProvider: setting.GOFFProviderType,
},
{
name: "invalid provider",
cfg: setting.OpenFeatureSettings{
ProviderType: "some_provider",
},
expectedProvider: setting.StaticProviderType,
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
provider, err := createProvider(tc.cfg.ProviderType, tc.cfg.URL, nil)
require.NoError(t, err)
if tc.expectedProvider == setting.GOFFProviderType {
_, ok := provider.(*gofeatureflag.Provider)
assert.True(t, ok, "expected provider to be of type goff.Provider")
} else {
_, ok := provider.(*inMemoryBulkProvider)
assert.True(t, ok, "expected provider to be of type memprovider.InMemoryProvider")
}
})
}
}