added gzip decompression of response body

This commit is contained in:
2026-01-24 19:56:48 -06:00
parent 519f3f4f00
commit 3e62dda908
2 changed files with 46 additions and 8 deletions
+22
View File
@@ -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)
}