@@ -64,26 +64,53 @@ func (f *fakeDataHandlerWithOAuth) QueryData(ctx context.Context, req *QueryData
6464func TestQueryData (t * testing.T ) {
6565 handler := newFakeDataHandlerWithOAuth ()
6666 adapter := newDataSDKAdapter (handler )
67- ctx := context .Background ()
68- _ , err := adapter .QueryData (ctx , & pluginv2.QueryDataRequest {
69- Headers : map [string ]string {
70- "Authorization" : "Bearer 123" ,
71- },
72- PluginContext : & pluginv2.PluginContext {},
67+
68+ t .Run ("When forward HTTP headers enabled should forward headers" , func (t * testing.T ) {
69+ ctx := context .Background ()
70+ _ , err := adapter .QueryData (ctx , & pluginv2.QueryDataRequest {
71+ Headers : map [string ]string {
72+ "Authorization" : "Bearer 123" ,
73+ },
74+ PluginContext : & pluginv2.PluginContext {},
75+ })
76+ require .NoError (t , err )
77+
78+ middlewares := httpclient .ContextualMiddlewareFromContext (handler .lastReq .Context ())
79+ require .Len (t , middlewares , 1 )
80+
81+ reqClone := handler .lastReq .Clone (handler .lastReq .Context ())
82+ // clean up headers to be sure they are injected
83+ reqClone .Header = http.Header {}
84+
85+ res , err := middlewares [0 ].CreateMiddleware (httpclient.Options {ForwardHTTPHeaders : true }, finalRoundTripper ).RoundTrip (reqClone )
86+ require .NoError (t , err )
87+ require .NoError (t , res .Body .Close ())
88+ require .Len (t , reqClone .Header , 1 )
89+ require .Equal (t , "Bearer 123" , reqClone .Header .Get ("Authorization" ))
90+ })
91+
92+ t .Run ("When forward HTTP headers disable should not forward headers" , func (t * testing.T ) {
93+ ctx := context .Background ()
94+ _ , err := adapter .QueryData (ctx , & pluginv2.QueryDataRequest {
95+ Headers : map [string ]string {
96+ "Authorization" : "Bearer 123" ,
97+ },
98+ PluginContext : & pluginv2.PluginContext {},
99+ })
100+ require .NoError (t , err )
101+
102+ middlewares := httpclient .ContextualMiddlewareFromContext (handler .lastReq .Context ())
103+ require .Len (t , middlewares , 1 )
104+
105+ reqClone := handler .lastReq .Clone (handler .lastReq .Context ())
106+ // clean up headers to be sure they are injected
107+ reqClone .Header = http.Header {}
108+
109+ res , err := middlewares [0 ].CreateMiddleware (httpclient.Options {ForwardHTTPHeaders : false }, finalRoundTripper ).RoundTrip (reqClone )
110+ require .NoError (t , err )
111+ require .NoError (t , res .Body .Close ())
112+ require .Empty (t , reqClone .Header )
73113 })
74- require .NoError (t , err )
75-
76- middlewares := httpclient .ContextualMiddlewareFromContext (handler .lastReq .Context ())
77- require .Len (t , middlewares , 1 )
78-
79- reqClone := handler .lastReq .Clone (handler .lastReq .Context ())
80- // clean up headers to be sure they are injected
81- reqClone .Header = http.Header {}
82- res , err := middlewares [0 ].CreateMiddleware (httpclient.Options {}, finalRoundTripper ).RoundTrip (reqClone )
83- require .NoError (t , err )
84- require .NoError (t , res .Body .Close ())
85- require .Len (t , reqClone .Header , 1 )
86- require .Equal (t , "Bearer 123" , reqClone .Header .Get ("Authorization" ))
87114}
88115
89116var finalRoundTripper = httpclient .RoundTripperFunc (func (req * http.Request ) (* http.Response , error ) {
0 commit comments