package starnet import ( "net/http" "testing" ) func TestWithRawRequestNil(t *testing.T) { _, err := NewRequest("http://example.com", "GET", WithRawRequest(nil)) if err == nil { t.Fatal("expected error when WithRawRequest(nil)") } } func TestSetHeadersDefensiveCopy(t *testing.T) { req := NewSimpleRequest("http://example.com", "GET") headers := http.Header{ "X-Test": []string{"v1"}, } req.SetHeaders(headers) headers.Set("X-Test", "v2") if got := req.GetHeader("X-Test"); got != "v1" { t.Fatalf("header mutated by external map change: got=%q want=%q", got, "v1") } } func TestSetQueriesDefensiveCopy(t *testing.T) { req := NewSimpleRequest("http://example.com", "GET") queries := map[string][]string{ "k": []string{"v1"}, } req.SetQueries(queries) queries["k"][0] = "v2" queries["k"] = append(queries["k"], "v3") got := req.config.Queries["k"] if len(got) != 1 || got[0] != "v1" { t.Fatalf("queries mutated by external map change: got=%v want=[v1]", got) } } func TestSetFormDataDefensiveCopy(t *testing.T) { req := NewSimpleRequest("http://example.com", "POST") form := map[string][]string{ "name": []string{"alice"}, } req.SetFormData(form) form["name"][0] = "bob" form["name"] = append(form["name"], "carol") got := req.config.Body.FormData["name"] if len(got) != 1 || got[0] != "alice" { t.Fatalf("form data mutated by external map change: got=%v want=[alice]", got) } }