@@ -842,11 +842,12 @@ var _ = Describe("Credentials Provider Priority", func() {
842842 It ("should handle credential updates from streaming provider" , func () {
843843 initialCreds := auth .NewBasicCredentials ("initial_user" , "initial_pass" )
844844 updatedCreds := auth .NewBasicCredentials ("updated_user" , "updated_pass" )
845+ updatesChan := make (chan auth.Credentials , 1 )
845846
846847 opt = & redis.Options {
847848 StreamingCredentialsProvider : & mockStreamingProvider {
848849 credentials : initialCreds ,
849- updates : make ( chan auth. Credentials , 1 ) ,
850+ updates : updatesChan ,
850851 },
851852 }
852853
@@ -861,6 +862,7 @@ var _ = Describe("Credentials Provider Priority", func() {
861862 // wrongpass
862863 Expect (client .Ping (context .Background ()).Err ()).To (HaveOccurred ())
863864 Expect (recorder .Contains ("AUTH updated_user" )).To (BeTrue ())
865+ close (updatesChan )
864866 })
865867})
866868
@@ -875,12 +877,10 @@ func (m *mockStreamingProvider) Subscribe(listener auth.CredentialsListener) (au
875877 return nil , nil , m .err
876878 }
877879
878- // Send initial credentials
879- listener .OnNext (m .credentials )
880-
881880 // Start goroutine to handle updates
882881 go func () {
883882 for creds := range m .updates {
883+ m .credentials = creds
884884 listener .OnNext (creds )
885885 }
886886 }()
@@ -892,7 +892,6 @@ func (m *mockStreamingProvider) Subscribe(listener auth.CredentialsListener) (au
892892 // allow multiple closes from multiple listeners
893893 }
894894 }()
895- close (m .updates )
896895 return
897896 }, nil
898897}
0 commit comments