fix(zarinhub): limit upstream response size
This commit is contained in:
@@ -381,3 +381,36 @@ func TestClientReturnsTimeout(t *testing.T) {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientRejectsOversizedResponse(t *testing.T) {
|
||||
server := httptest.NewServer(
|
||||
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
||||
body := make([]byte, maxResponseBodySize+1)
|
||||
for index := range body {
|
||||
body[index] = 'x'
|
||||
}
|
||||
|
||||
if _, err := w.Write(body); err != nil {
|
||||
t.Errorf("write response: %v", err)
|
||||
}
|
||||
}),
|
||||
)
|
||||
defer server.Close()
|
||||
|
||||
client := NewClient(
|
||||
&http.Client{Timeout: time.Second},
|
||||
server.URL,
|
||||
"test-token",
|
||||
)
|
||||
|
||||
_, err := client.Convert(
|
||||
context.Background(),
|
||||
"6037997512345678",
|
||||
)
|
||||
|
||||
if !errors.Is(err, ErrInvalidResponse) {
|
||||
t.Fatalf("error = %v, want ErrInvalidResponse", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user