@@ -906,3 +906,55 @@ func TestJetStreamAlreadyConnected(t *testing.T) {
906906
907907 require .NoError (t , tbs .Bridge .connectToJetStream ())
908908}
909+
910+ func TestJetStreamSourcesConsumedByKafka (t * testing.T ) {
911+ topic := nuid .Next ()
912+
913+ connect := []conf.ConnectorConfig {
914+ {
915+ Type : "JetStreamToKafka" ,
916+ Subject : "foo.*" ,
917+ Topic : topic ,
918+ DurableName : "KafkaBridgeConsumer" ,
919+ Stream : "FOO_GLOBAL" ,
920+ },
921+ }
922+
923+ tbs , err := StartTestEnvironmentWithSources (connect )
924+ require .NoError (t , err )
925+ defer tbs .Close ()
926+
927+ tbs .Bridge .checkConnections ()
928+
929+ _ , err = tbs .JS .Publish ("foo.one" , []byte ("one" ))
930+ require .NoError (t , err )
931+ _ , err = tbs .JS .Publish ("foo.two" , []byte ("two" ))
932+ require .NoError (t , err )
933+ _ , err = tbs .JS .Publish ("foo.one.1" , []byte ("another one" ))
934+ require .NoError (t , err )
935+ _ , err = tbs .JS .Publish ("foo.three" , []byte ("three" ))
936+ require .NoError (t , err )
937+
938+ reader := tbs .CreateReader (topic , 5000 )
939+ defer reader .Close ()
940+
941+ _ , data , _ , err := tbs .GetMessageFromKafka (reader , 5000 )
942+ require .NoError (t , err )
943+ require .Equal (t , "one" , string (data ))
944+
945+ _ , data , _ , err = tbs .GetMessageFromKafka (reader , 5000 )
946+ require .NoError (t , err )
947+ require .Equal (t , "two" , string (data ))
948+
949+ _ , data , _ , err = tbs .GetMessageFromKafka (reader , 5000 )
950+ require .NoError (t , err )
951+ require .Equal (t , "three" , string (data ))
952+
953+ stats := tbs .Bridge .SafeStats ()
954+ connStats := stats .Connections [0 ]
955+ require .Equal (t , int64 (3 ), connStats .MessagesIn )
956+ require .Equal (t , int64 (3 ), connStats .MessagesOut )
957+ require .Equal (t , int64 (1 ), connStats .Connects )
958+ require .Equal (t , int64 (0 ), connStats .Disconnects )
959+ require .True (t , connStats .Connected )
960+ }
0 commit comments