From b24021b205cabf63b59bf83b020e65859ccf9479 Mon Sep 17 00:00:00 2001 From: Jack Date: Mon, 16 Jun 2025 18:44:33 +0800 Subject: [PATCH] Fix Cookie Clone Issue in Client.Clone() --- client.go | 2 +- client_test.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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) {