@@ -10,34 +10,28 @@ import (
1010 "github.com/stretchr/testify/require"
1111)
1212
13- func Test_getViewer_preservesUserAgent (t * testing.T ) {
13+ func Test_getViewer_leavesUserAgent (t * testing.T ) {
1414 var receivedUA string
1515 var receivedAuth string
1616
17- // Outer transport sets User-Agent, simulating the factory-built client's header middleware.
18- // Inner transport captures headers as-received to verify they survived the wrapping.
1917 plainClient := & http.Client {
2018 Transport : & roundTripper {roundTrip : func (req * http.Request ) (* http.Response , error ) {
21- req .Header .Set ("User-Agent" , "GitHub CLI 1.2.3 Agent/copilot-cli" )
22- return (& http.Client {
23- Transport : & roundTripper {roundTrip : func (req * http.Request ) (* http.Response , error ) {
24- receivedUA = req .Header .Get ("User-Agent" )
25- receivedAuth = req .Header .Get ("Authorization" )
26- return & http.Response {
27- StatusCode : 200 ,
28- Header : http.Header {"Content-Type" : []string {"application/json" }},
29- Body : io .NopCloser (bytes .NewBufferString (`{"data":{"viewer":{"login":"monalisa"}}}` )),
30- Request : req ,
31- }, nil
32- }},
33- }).Transport .RoundTrip (req )
19+ receivedUA = req .Header .Get ("User-Agent" )
20+ receivedAuth = req .Header .Get ("Authorization" )
21+
22+ return & http.Response {
23+ StatusCode : 200 ,
24+ Header : http.Header {"Content-Type" : []string {"application/json" }},
25+ Body : io .NopCloser (bytes .NewBufferString (`{"data":{"viewer":{"login":"monalisa"}}}` )),
26+ Request : req ,
27+ }, nil
3428 }},
3529 }
3630
3731 login , err := getViewer (plainClient , "github.com" , "test-token" )
3832 require .NoError (t , err )
3933 assert .Equal (t , "monalisa" , login )
40- assert .Equal (t , "GitHub CLI 1.2.3 Agent/copilot-cli" , receivedUA )
34+ assert .Empty (t , receivedUA , "User-Agent header should be left unset so that downstream transports can set it" )
4135 assert .Equal (t , "token test-token" , receivedAuth )
4236}
4337
0 commit comments