added gzip decompression of response body
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package reddit
|
||||
|
||||
import (
|
||||
"compress/gzip"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
@@ -271,3 +273,23 @@ func TestClient_Do_RateLimitError(t *testing.T) {
|
||||
require.Equal(t, 600, resp.Rate.Used)
|
||||
require.Equal(t, time.Now().Truncate(time.Second).Add(time.Minute*4), resp.Rate.Reset)
|
||||
}
|
||||
|
||||
func TestClient_Do_Gzip(t *testing.T) {
|
||||
client, mux := setup(t)
|
||||
expected := map[string]string{
|
||||
"message": "Hello!",
|
||||
}
|
||||
mux.HandleFunc("/api/v1/test", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Add("Content-Encoding", "gzip")
|
||||
b, _ := json.Marshal(&expected)
|
||||
zw := gzip.NewWriter(w)
|
||||
zw.Write(b)
|
||||
zw.Close()
|
||||
})
|
||||
req, err := client.NewRequest(http.MethodGet, "api/v1/test", nil)
|
||||
require.NoError(t, err)
|
||||
result := map[string]string{}
|
||||
_, err = client.Do(ctx, req, &result)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, result, expected)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user