11package flagd
22
33import (
4+ "reflect"
45 "testing"
56
67 "github.com/open-feature/flagd/core/pkg/sync"
@@ -9,29 +10,36 @@ import (
910 process "github.com/open-feature/go-sdk-contrib/providers/flagd/pkg/service/in_process"
1011 of "github.com/open-feature/go-sdk/openfeature"
1112 "go.uber.org/mock/gomock"
13+ "google.golang.org/grpc"
14+ "google.golang.org/grpc/credentials/insecure"
1215)
1316
1417func TestNewProvider (t * testing.T ) {
1518 customSyncProvider := process .NewDoNothingCustomSyncProvider ()
19+ gRPCDialOptionOverride := []grpc.DialOption {
20+ grpc .WithTransportCredentials (insecure .NewCredentials ()),
21+ grpc .WithAuthority ("test-authority" ),
22+ }
1623
1724 tests := []struct {
18- name string
19- expectedResolver ResolverType
20- expectPort uint16
21- expectHost string
22- expectTargetUri string
23- expectCacheType cache.Type
24- expectCertPath string
25- expectMaxRetries int
26- expectCacheSize int
27- expectOtelIntercept bool
28- expectSocketPath string
29- expectTlsEnabled bool
30- expectProviderID string
31- expectSelector string
32- expectCustomSyncProvider sync.ISync
33- expectCustomSyncProviderUri string
34- options []ProviderOption
25+ name string
26+ expectedResolver ResolverType
27+ expectPort uint16
28+ expectHost string
29+ expectTargetUri string
30+ expectCacheType cache.Type
31+ expectCertPath string
32+ expectMaxRetries int
33+ expectCacheSize int
34+ expectOtelIntercept bool
35+ expectSocketPath string
36+ expectTlsEnabled bool
37+ expectProviderID string
38+ expectSelector string
39+ expectCustomSyncProvider sync.ISync
40+ expectCustomSyncProviderUri string
41+ expectGrpcDialOptionsOverride []grpc.DialOption
42+ options []ProviderOption
3543 }{
3644 {
3745 name : "default construction" ,
@@ -173,6 +181,20 @@ func TestNewProvider(t *testing.T) {
173181 WithCustomSyncProvider (customSyncProvider ),
174182 },
175183 },
184+ {
185+ name : "with gRPC DialOptions override with in-process resolver" ,
186+ expectedResolver : inProcess ,
187+ expectHost : defaultHost ,
188+ expectPort : defaultInProcessPort ,
189+ expectCacheType : defaultCache ,
190+ expectCacheSize : defaultMaxCacheSize ,
191+ expectMaxRetries : defaultMaxEventStreamRetries ,
192+ expectGrpcDialOptionsOverride : gRPCDialOptionOverride ,
193+ options : []ProviderOption {
194+ WithInProcessResolver (),
195+ WithGrpcDialOptionsOverride (gRPCDialOptionOverride ),
196+ },
197+ },
176198 {
177199 name : "with selector and providerID with in-process resolver" ,
178200 expectedResolver : inProcess ,
@@ -295,6 +317,18 @@ func TestNewProvider(t *testing.T) {
295317 test .expectCustomSyncProviderUri , config .CustomSyncProviderUri )
296318 }
297319
320+ if test .expectGrpcDialOptionsOverride != nil {
321+ if config .GrpcDialOptionsOverride == nil {
322+ t .Errorf ("incorrent configuration GrpcDialOptionsOverride, expected %v, got nil" , config .GrpcDialOptionsOverride )
323+ } else if ! reflect .DeepEqual (config .GrpcDialOptionsOverride , test .expectGrpcDialOptionsOverride ) {
324+ t .Errorf ("incorrent configuration GrpcDialOptionsOverride, expected %v, got %v" , test .expectGrpcDialOptionsOverride , config .GrpcDialOptionsOverride )
325+ }
326+ } else {
327+ if config .GrpcDialOptionsOverride != nil {
328+ t .Errorf ("incorrent configuration GrpcDialOptionsOverride, expected nil, got %v" , config .GrpcDialOptionsOverride )
329+ }
330+ }
331+
298332 // this line will fail linting if this provider is no longer compatible with the openfeature sdk
299333 var _ of.FeatureProvider = flagdProvider
300334 })
0 commit comments