// BEGIN: 7f8d9e6d4b5c package handlers import ( "io" "net/http" "net/http/httptest" "strings" "testing" "github.com/gofiber/fiber/v2" ) func TestRaw(t *testing.T) { app := fiber.New() app.Get("/raw/*", Raw) testCases := []struct { name string url string expected string }{ { name: "valid url", url: "https://www.google.com", expected: "", }, { name: "invalid url", url: "invalid-url", expected: "parse invalid-url: invalid URI for request", }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "/raw/"+tc.url, nil) resp, err := app.Test(req) if err != nil { t.Fatalf("unexpected error: %v", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { t.Errorf("expected status OK; got %v", resp.Status) } body, err := io.ReadAll(resp.Body) if err != nil { t.Fatalf("unexpected error: %v", err) } if !strings.Contains(string(body), tc.expected) { t.Errorf("expected body to contain %q; got %q", tc.expected, string(body)) } }) } } // END: 7f8d9e6d4b5c