@@ -26,6 +26,8 @@ import (
2626 "google.golang.org/grpc/credentials"
2727 "google.golang.org/grpc/credentials/insecure"
2828 "google.golang.org/grpc/test/bufconn"
29+ "google.golang.org/protobuf/proto"
30+ "google.golang.org/protobuf/types/known/structpb"
2931)
3032
3133func Test_InitWithMockCredentialBuilder (t * testing.T ) {
@@ -215,11 +217,16 @@ func TestSync_BasicFlagSyncStates(t *testing.T) {
215217 {
216218 name : "State All maps to Sync All" ,
217219 setup : func (t * testing.T , client * grpcmock.MockFlagSyncServiceClient , clientResponse * grpcmock.MockFlagSyncServiceClientResponse ) {
220+ metadata , err := structpb .NewStruct (map [string ]any {"sources" : "A,B,C" })
221+ if err != nil {
222+ t .Fatalf ("Failed to create sync context: %v" , err )
223+ }
218224 client .EXPECT ().SyncFlags (gomock .Any (), gomock .Any (), gomock .Any ()).Return (clientResponse , nil )
219225 gomock .InOrder (
220226 clientResponse .EXPECT ().Recv ().Return (
221227 & v1.SyncFlagsResponse {
222228 FlagConfiguration : "{}" ,
229+ SyncContext : metadata ,
223230 },
224231 nil ,
225232 ),
@@ -287,6 +294,11 @@ func TestSync_BasicFlagSyncStates(t *testing.T) {
287294func Test_StreamListener (t * testing.T ) {
288295 const target = "localBufCon"
289296
297+ metadata , err := structpb .NewStruct (map [string ]any {"sources" : "A,B,C" })
298+ if err != nil {
299+ t .Fatalf ("Failed to create sync context: %v" , err )
300+ }
301+
290302 tests := []struct {
291303 name string
292304 input []serverPayload
@@ -301,8 +313,9 @@ func Test_StreamListener(t *testing.T) {
301313 },
302314 output : []sync.DataSync {
303315 {
304- FlagData : "{\" flags\" : {}}" ,
305- Type : sync .ALL ,
316+ FlagData : "{\" flags\" : {}}" ,
317+ SyncContext : metadata ,
318+ Type : sync .ALL ,
306319 },
307320 },
308321 },
@@ -319,11 +332,13 @@ func Test_StreamListener(t *testing.T) {
319332 output : []sync.DataSync {
320333 {
321334 FlagData : "{}" ,
335+ SyncContext : metadata ,
322336 Type : sync .ALL ,
323337 },
324338 {
325- FlagData : "{\" flags\" : {}}" ,
326- Type : sync .ALL ,
339+ FlagData : "{\" flags\" : {}}" ,
340+ SyncContext : metadata ,
341+ Type : sync .ALL ,
327342 },
328343 },
329344 },
@@ -383,6 +398,10 @@ func Test_StreamListener(t *testing.T) {
383398 if expected .FlagData != out .FlagData {
384399 t .Errorf ("Returned sync data = %v, wanted %v" , out .FlagData , expected .FlagData )
385400 }
401+
402+ if ! proto .Equal (expected .SyncContext , out .SyncContext ) {
403+ t .Errorf ("Returned sync context = %v, wanted = %v" , out .SyncContext , expected .SyncContext )
404+ }
386405 }
387406
388407 // channel must be empty
@@ -575,8 +594,10 @@ type bufferedServer struct {
575594
576595func (b * bufferedServer ) SyncFlags (_ * v1.SyncFlagsRequest , stream syncv1grpc.FlagSyncService_SyncFlagsServer ) error {
577596 for _ , response := range b .mockResponses {
597+ metadata , _ := structpb .NewStruct (map [string ]any {"sources" : "A,B,C" })
578598 err := stream .Send (& v1.SyncFlagsResponse {
579599 FlagConfiguration : response .flags ,
600+ SyncContext : metadata ,
580601 })
581602 if err != nil {
582603 fmt .Printf ("Error with stream: %s" , err .Error ())
0 commit comments