@@ -2,6 +2,7 @@ package phabricator
22
33import (
44 "encoding/json"
5+ "fmt"
56 "io"
67 "net/http"
78 "net/http/httptest"
@@ -14,10 +15,9 @@ import (
1415
1516func TestBuildQueryDiffsRequest (t * testing.T ) {
1617 testCases := []struct {
17- name string
18- diffIDs []int
19- apiToken string
20- wantAll []string
18+ name string
19+ diffIDs []int
20+ wantAll []string
2121 }{
2222 {
2323 name : "single ID" ,
@@ -29,17 +29,11 @@ func TestBuildQueryDiffsRequest(t *testing.T) {
2929 diffIDs : []int {42 , 43 , 44 },
3030 wantAll : []string {"ids%5B%5D=42" , "ids%5B%5D=43" , "ids%5B%5D=44" },
3131 },
32- {
33- name : "includes api.token when set" ,
34- diffIDs : []int {42 },
35- apiToken : "my-secret" ,
36- wantAll : []string {"ids%5B%5D=42" , "api.token=my-secret" },
37- },
3832 }
3933
4034 for _ , tc := range testCases {
4135 t .Run (tc .name , func (t * testing.T ) {
42- form := buildQueryDiffsRequest (tc .diffIDs , tc . apiToken )
36+ form := buildQueryDiffsRequest (tc .diffIDs )
4337 encoded := form .Encode ()
4438 for _ , want := range tc .wantAll {
4539 assert .Contains (t , encoded , want )
@@ -60,7 +54,7 @@ func TestDoConduitRequest(t *testing.T) {
6054 defer server .Close ()
6155
6256 client := & http.Client {Transport : & testTransport {baseURL : server .URL }}
63- form := buildQueryDiffsRequest ([]int {100 , 200 }, "" )
57+ form := buildQueryDiffsRequest ([]int {100 , 200 })
6458
6559 resp , err := doConduitRequest (t .Context (), client , form )
6660 require .NoError (t , err )
@@ -73,7 +67,7 @@ func TestDoConduitRequest(t *testing.T) {
7367
7468func TestDoConduitRequest_ConnectionError (t * testing.T ) {
7569 client := & http.Client {Transport : & testTransport {baseURL : "http://127.0.0.1:0" }}
76- form := buildQueryDiffsRequest ([]int {1 }, "" )
70+ form := buildQueryDiffsRequest ([]int {1 })
7771
7872 _ , err := doConduitRequest (t .Context (), client , form )
7973
@@ -104,6 +98,15 @@ func TestParseConduitResponse(t *testing.T) {
10498 diffIDs : []int {100 },
10599 wantErr : "Conduit API returned status 500" ,
106100 },
101+ {
102+ name : "HTTP error with unreadable body" ,
103+ resp : & http.Response {
104+ StatusCode : http .StatusBadGateway ,
105+ Body : io .NopCloser (& errReader {}),
106+ },
107+ diffIDs : []int {100 },
108+ wantErr : "failed to read body" ,
109+ },
107110 {
108111 name : "conduit error" ,
109112 resp : newConduitErrorHTTPResponse (t , "ERR-CONDUIT-CORE" , "Invalid diff ID" ),
@@ -200,3 +203,9 @@ func (t *testTransport) RoundTrip(req *http.Request) (*http.Response, error) {
200203 req .URL .Host = t .baseURL [len ("http://" ):]
201204 return http .DefaultTransport .RoundTrip (req )
202205}
206+
207+ type errReader struct {}
208+
209+ func (e * errReader ) Read ([]byte ) (int , error ) {
210+ return 0 , fmt .Errorf ("simulated read error" )
211+ }
0 commit comments