package api import ( "encoding/json" "net/http" "net/http/httptest" "testing" "github.com/gin-gonic/gin" ) func TestError(t *testing.T) { gin.SetMode(gin.TestMode) router := gin.New() router.GET("/error", func(c *gin.Context) { Error(c, http.StatusBadRequest, "invalid request") }) req := httptest.NewRequest(http.MethodGet, "/error", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) if rec.Code != http.StatusBadRequest { t.Fatalf("status = %d, want %d", rec.Code, http.StatusBadRequest) } var body ErrorResponse if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil { t.Fatalf("unmarshal response: %v", err) } if body.Error.Message != "invalid request" { t.Errorf("message = %q, want %q", body.Error.Message, "invalid request") } }