diff --git a/client.go b/client.go index ec6141f8..cde0e6f9 100644 --- a/client.go +++ b/client.go @@ -2208,7 +2208,7 @@ func (c *Client) Clone(ctx context.Context) *Client { } // clone cookies if l := len(c.cookies); l > 0 { - cc.cookies = make([]*http.Cookie, l) + cc.cookies = make([]*http.Cookie, 0, l) for _, cookie := range c.cookies { cc.cookies = append(cc.cookies, cloneCookie(cookie)) } diff --git a/client_test.go b/client_test.go index 8a5eef50..44709a3b 100644 --- a/client_test.go +++ b/client_test.go @@ -1348,6 +1348,15 @@ func TestClientClone(t *testing.T) { // assert interface/pointer type assertEqual(t, parent.Client(), clone.Client()) + + // assert cookies + parentCookies := parent.Cookies() + cloneCookies := clone.Cookies() + assertEqual(t, len(parentCookies), len(cloneCookies)) + for i := range parentCookies { + assertEqual(t, parentCookies[i].Name, cloneCookies[i].Name) + assertEqual(t, parentCookies[i].Value, cloneCookies[i].Value) + } } func TestResponseBodyLimit(t *testing.T) {