@@ -64,6 +64,7 @@ var _ = Describe("DefaultWSConnectionFactory", func() {
6464 svr * httptest.Server
6565 ch chan struct {}
6666 useTLS , testError bool
67+ testHeaders http.Header
6768 customErr * client.WSConnError
6869 )
6970
@@ -78,6 +79,11 @@ var _ = Describe("DefaultWSConnectionFactory", func() {
7879 header := r .Header .Get (fclient .AuthorizationHeader )
7980 Expect (header ).To (Equal ("oi" ))
8081
82+ for k := range testHeaders {
83+ v := r .Header .Get (k )
84+ Expect (v ).To (Equal (testHeaders [k ][0 ]))
85+ }
86+
8187 svrConnection , err := ws .NewConnection (wc , svrOpts )
8288 if err != nil {
8389 Fail ("broke" )
@@ -111,6 +117,7 @@ var _ = Describe("DefaultWSConnectionFactory", func() {
111117
112118 AfterEach (func () {
113119 svr .Close ()
120+ testHeaders = nil
114121 })
115122
116123 It ("sends auth headers" , func () {
@@ -131,6 +138,31 @@ var _ = Describe("DefaultWSConnectionFactory", func() {
131138 Expect (cli .Disconnect ()).ToNot (HaveOccurred ())
132139 })
133140
141+ It ("sends auth headers with additional header" , func () {
142+ u := "ws" + strings .TrimPrefix (svr .URL , "http" )
143+
144+ testHeaders = http.Header {
145+ "User-Agent" : []string {"xxxx:1.0.5" }, // user agent
146+ "X-a" : []string {"" }, // empty value
147+ "X-b" : []string {"value" }, // some string value
148+ }
149+
150+ cli := fclient .NewWS (client.WSConnectionOptions {
151+ Factory : & client.DefaultWSConnectionFactory {
152+ URL : u ,
153+ TLSConfig : & tls.Config {
154+ InsecureSkipVerify : true ,
155+ },
156+ AuthInfo : NewIAMAuthInfo ("oi" ),
157+ Header : testHeaders ,
158+ },
159+ })
160+
161+ Expect (cli .Connect ()).ToNot (HaveOccurred ())
162+ Eventually (ch ).Should (Receive ())
163+ Expect (cli .Disconnect ()).ToNot (HaveOccurred ())
164+ })
165+
134166 When ("sends wrong url, expects error" , func () {
135167
136168 BeforeEach (func () {
0 commit comments