|
|
@@ -12,6 +12,7 @@ import (
|
|
|
"net/http"
|
|
|
"net/http/httptest"
|
|
|
"net/url"
|
|
|
+ "regexp"
|
|
|
"strings"
|
|
|
"sync"
|
|
|
"sync/atomic"
|
|
|
@@ -546,7 +547,7 @@ func TestProberRunHandler(t *testing.T) {
|
|
|
probeFunc func(context.Context) error
|
|
|
wantResponseCode int
|
|
|
wantJSONResponse RunHandlerResponse
|
|
|
- wantPlaintextResponse string
|
|
|
+ wantPlaintextResponse *regexp.Regexp
|
|
|
}{
|
|
|
{
|
|
|
name: "success",
|
|
|
@@ -561,7 +562,7 @@ func TestProberRunHandler(t *testing.T) {
|
|
|
},
|
|
|
PreviousSuccessRatio: 1,
|
|
|
},
|
|
|
- wantPlaintextResponse: "Probe succeeded",
|
|
|
+ wantPlaintextResponse: regexp.MustCompile("(?s)Probe succeeded .*Last 2 probes.*success rate 100%"),
|
|
|
},
|
|
|
{
|
|
|
name: "failure",
|
|
|
@@ -576,7 +577,7 @@ func TestProberRunHandler(t *testing.T) {
|
|
|
RecentResults: []bool{false, false},
|
|
|
},
|
|
|
},
|
|
|
- wantPlaintextResponse: "Probe failed",
|
|
|
+ wantPlaintextResponse: regexp.MustCompile("(?s)Probe failed: .*Last 2 probes.*success rate 0%"),
|
|
|
},
|
|
|
}
|
|
|
|
|
|
@@ -607,6 +608,7 @@ func TestProberRunHandler(t *testing.T) {
|
|
|
if err != nil {
|
|
|
t.Fatalf("failed to make request: %v", err)
|
|
|
}
|
|
|
+ defer resp.Body.Close()
|
|
|
|
|
|
if resp.StatusCode != tt.wantResponseCode {
|
|
|
t.Errorf("unexpected response code: got %d, want %d", resp.StatusCode, tt.wantResponseCode)
|
|
|
@@ -630,8 +632,8 @@ func TestProberRunHandler(t *testing.T) {
|
|
|
}
|
|
|
} else {
|
|
|
body, _ := io.ReadAll(resp.Body)
|
|
|
- if !strings.Contains(string(body), tt.wantPlaintextResponse) {
|
|
|
- t.Errorf("unexpected response body: got %q, want to contain %q", body, tt.wantPlaintextResponse)
|
|
|
+ if !tt.wantPlaintextResponse.MatchString(string(body)) {
|
|
|
+ t.Errorf("unexpected response body: got %q, want to match %q", body, tt.wantPlaintextResponse)
|
|
|
}
|
|
|
}
|
|
|
})
|