package middleware import ( "net/http/httptest" "testing" "github.com/gofiber/fiber/v2" "jd-book-uploader/config" ) func TestSetupCORS(t *testing.T) { cfg := &config.Config{ FrontendURL: "http://localhost:5173", } app := fiber.New() app.Use(SetupCORS(cfg)) app.Get("/test", func(c *fiber.Ctx) error { return c.SendString("OK") }) // Test CORS preflight request req := httptest.NewRequest("OPTIONS", "/test", nil) req.Header.Set("Origin", "http://localhost:5173") req.Header.Set("Access-Control-Request-Method", "GET") resp, err := app.Test(req) if err != nil { t.Fatalf("Test request failed: %v", err) } if resp.StatusCode != fiber.StatusNoContent { t.Errorf("Expected status %d, got %d", fiber.StatusNoContent, resp.StatusCode) } // Check CORS headers allowOrigin := resp.Header.Get("Access-Control-Allow-Origin") if allowOrigin != "http://localhost:5173" { t.Errorf("Expected Access-Control-Allow-Origin %s, got %s", "http://localhost:5173", allowOrigin) } }