JoinURL now returns *url.URL and error

This commit is contained in:
Musab Gültekin
2021-04-17 11:12:22 +03:00
parent 9ea67b3554
commit 6a23efd175
3 changed files with 12 additions and 7 deletions

View File

@ -22,14 +22,14 @@ type Response struct {
}
// JoinURL joins base response URL and provided relative URL.
func (r *Response) JoinURL(relativeURL string) string {
func (r *Response) JoinURL(relativeURL string) (*url.URL, error) {
parsedRelativeURL, err := url.Parse(relativeURL)
if err != nil {
return ""
return nil, err
}
joinedURL := r.Request.URL.ResolveReference(parsedRelativeURL)
return joinedURL.String()
return joinedURL, nil
}
// IsHTML checks if response content is HTML by looking content-type header

View File

@ -9,5 +9,7 @@ func TestResponse_JoinURL(t *testing.T) {
req, _ := NewRequest("GET", "https://localhost.com/test/a.html", nil)
resp := Response{Request: req}
assert.Equal(t, "https://localhost.com/source", resp.JoinURL("/source"))
joinedURL, err := resp.JoinURL("/source")
assert.NoError(t, err)
assert.Equal(t, "https://localhost.com/source", joinedURL.String())
}