Skip to content

Commit d5f3d6a

Browse files
committed
added test to check for metadata, currently fails
Signed-off-by: bbland1 <[email protected]>
1 parent 70878e5 commit d5f3d6a

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

providers/multi-provider/pkg/providers_test.go

+40-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ package multiprovider
33
import (
44
"testing"
55

6-
// "github.com/open-feature/go-sdk/openfeature"
6+
"github.com/open-feature/go-sdk/openfeature"
77
"github.com/open-feature/go-sdk/openfeature/hooks"
88
"github.com/open-feature/go-sdk/openfeature/memprovider"
99
oft "github.com/open-feature/go-sdk/openfeature/testing"
1010
)
1111

12-
func TestNewMultiProvider_ProviderMetadataUniqueNames(t *testing.T) {
12+
func TestNewMultiProvider_ProviderUniqueNames(t *testing.T) {
1313
testProvider1 := memprovider.NewInMemoryProvider(map[string]memprovider.InMemoryFlag{
1414
"boolFlag": {
1515
Key: "boolFlag",
@@ -176,3 +176,41 @@ func TestNewMultiProvider_ProvidersErrorNameNotUnique(t *testing.T) {
176176
t.Errorf("Expected the multiprovider to have an error of: '%s', got: '%s'", errUniqueName, err.Error())
177177
}
178178
}
179+
180+
// todo: currently the `multiProvider.Metadata()` just give the `Name` of the multi provider it doesn't aggregate the passed providers as stated in this specification https://openfeature.dev/specification/appendix-a/#metadata so this test fails
181+
func TestAggregatedMetaData(t *testing.T){
182+
testProvider1 := oft.NewTestProvider()
183+
testProvider2 := oft.NewTestProvider()
184+
185+
defaultLogger, err := hooks.NewLoggingHook(false)
186+
if err != nil {
187+
t.Errorf("Issue setting up logger,'%s'", err)
188+
}
189+
190+
multiProvider, err := NewMultiProvider([]UniqueNameProvider{
191+
{
192+
Provider: testProvider1,
193+
UniqueName: "provider1",
194+
}, {
195+
Provider: testProvider2,
196+
UniqueName: "provider2",
197+
},
198+
}, "test", defaultLogger)
199+
200+
if err != nil {
201+
t.Errorf("Expected the multiprovider to successfully make an instance, '%s'", err)
202+
}
203+
204+
expectedMetadata := MultiMetadata{
205+
Name: "multiprovider",
206+
OriginalMetadata: map[string]openfeature.Metadata{
207+
"provider1": openfeature.Metadata{Name:"NoopProvider"},
208+
"provider2": openfeature.Metadata{Name:"NoopProvider"},
209+
210+
},
211+
}
212+
213+
if multiProvider.Metadata().Name != "hi" {
214+
t.Errorf("Expected to see the aggregated metadata of all passed providers: '%s', got: '%s'", expectedMetadata, multiProvider.Metadata().Name)
215+
}
216+
}

0 commit comments

Comments
 (0)