Skip to content

Commit f1f7360

Browse files
authored
http checks interpolate path and body (#57)
1 parent effb5ac commit f1f7360

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

Diff for: checks/http.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ type HttpTestResult struct {
2222
StatusCode int
2323
Headers map[string]string
2424
BodyString string
25+
Variables map[string]string
2526
}
2627

2728
func HttpTest(
@@ -44,21 +45,24 @@ func HttpTest(
4445
cobra.CheckErr("no base URL provided")
4546
}
4647
finalBaseURL = strings.TrimSuffix(finalBaseURL, "/")
48+
interpolatedPath := interpolateVariables(request.Request.Path, variables)
49+
completeURL := fmt.Sprintf("%s%s", finalBaseURL, interpolatedPath)
4750

4851
var r *http.Request
4952
if request.Request.BodyJSON != nil {
5053
dat, err := json.Marshal(request.Request.BodyJSON)
5154
cobra.CheckErr(err)
52-
r, err = http.NewRequest(request.Request.Method, fmt.Sprintf("%s%s",
53-
finalBaseURL, request.Request.Path), bytes.NewBuffer(dat))
55+
interpolatedBodyJSONStr := interpolateVariables(string(dat), variables)
56+
r, err = http.NewRequest(request.Request.Method, completeURL,
57+
bytes.NewBuffer([]byte(interpolatedBodyJSONStr)),
58+
)
5459
if err != nil {
5560
cobra.CheckErr("Failed to create request")
5661
}
5762
r.Header.Add("Content-Type", "application/json")
5863
} else {
5964
var err error
60-
r, err = http.NewRequest(request.Request.Method, fmt.Sprintf("%s%s",
61-
finalBaseURL, request.Request.Path), nil)
65+
r, err = http.NewRequest(request.Request.Method, completeURL, nil)
6266
if err != nil {
6367
cobra.CheckErr("Failed to create request")
6468
}
@@ -92,13 +96,14 @@ func HttpTest(
9296
for k, v := range resp.Header {
9397
headers[k] = strings.Join(v, ",")
9498
}
99+
parseVariables(body, request.ResponseVariables, variables)
95100
responses[i] = HttpTestResult{
96101
RequestHeaders: r.Header,
97102
StatusCode: resp.StatusCode,
98103
Headers: headers,
99104
BodyString: string(body),
105+
Variables: variables,
100106
}
101-
parseVariables(body, request.ResponseVariables, variables)
102107
}
103108
return responses, finalBaseURL
104109
}

Diff for: version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.9.1
1+
v1.10.1

0 commit comments

Comments
 (0)