summaryrefslogtreecommitdiffstats
path: root/vendor/gopkg.in/olivere/elastic.v5/retrier_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gopkg.in/olivere/elastic.v5/retrier_test.go')
-rw-r--r--vendor/gopkg.in/olivere/elastic.v5/retrier_test.go55
1 files changed, 53 insertions, 2 deletions
diff --git a/vendor/gopkg.in/olivere/elastic.v5/retrier_test.go b/vendor/gopkg.in/olivere/elastic.v5/retrier_test.go
index 100a17838..c1c5ff524 100644
--- a/vendor/gopkg.in/olivere/elastic.v5/retrier_test.go
+++ b/vendor/gopkg.in/olivere/elastic.v5/retrier_test.go
@@ -65,7 +65,10 @@ func TestRetrier(t *testing.T) {
t.Fatal(err)
}
- res, err := client.PerformRequest(context.TODO(), "GET", "/fail", nil, nil)
+ res, err := client.PerformRequest(context.TODO(), PerformRequestOptions{
+ Method: "GET",
+ Path: "/fail",
+ })
if err == nil {
t.Fatal("expected error")
}
@@ -107,7 +110,10 @@ func TestRetrierWithError(t *testing.T) {
t.Fatal(err)
}
- res, err := client.PerformRequest(context.TODO(), "GET", "/fail", nil, nil)
+ res, err := client.PerformRequest(context.TODO(), PerformRequestOptions{
+ Method: "GET",
+ Path: "/fail",
+ })
if err != kaboom {
t.Fatalf("expected %v, got %v", kaboom, err)
}
@@ -121,3 +127,48 @@ func TestRetrierWithError(t *testing.T) {
t.Errorf("expected %d Retrier calls; got: %d", 1, retrier.N)
}
}
+
+func TestRetrierOnPerformRequest(t *testing.T) {
+ var numFailedReqs int
+ fail := func(r *http.Request) (*http.Response, error) {
+ numFailedReqs += 1
+ //return &http.Response{Request: r, StatusCode: 400}, nil
+ return nil, errors.New("request failed")
+ }
+
+ tr := &failingTransport{path: "/fail", fail: fail}
+ httpClient := &http.Client{Transport: tr}
+
+ defaultRetrier := &testRetrier{
+ Retrier: NewStopRetrier(),
+ }
+ requestRetrier := &testRetrier{
+ Retrier: NewStopRetrier(),
+ }
+
+ client, err := NewClient(
+ SetHttpClient(httpClient),
+ SetHealthcheck(false),
+ SetRetrier(defaultRetrier))
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ res, err := client.PerformRequest(context.TODO(), PerformRequestOptions{
+ Method: "GET",
+ Path: "/fail",
+ Retrier: requestRetrier,
+ })
+ if err == nil {
+ t.Fatal("expected error")
+ }
+ if res != nil {
+ t.Fatal("expected no response")
+ }
+ if want, have := int64(0), defaultRetrier.N; want != have {
+ t.Errorf("defaultRetrier: expected %d calls; got: %d", want, have)
+ }
+ if want, have := int64(1), requestRetrier.N; want != have {
+ t.Errorf("requestRetrier: expected %d calls; got: %d", want, have)
+ }
+}