ops_ingress_reject_capture_test.go 800 B

12345678910111213141516171819202122232425
  1. package handler
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "testing"
  6. middleware2 "github.com/Wei-Shaw/sub2api/internal/server/middleware"
  7. "github.com/gin-gonic/gin"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestOpsCaptureWriterDoesNotCopyIngressRejectBody(t *testing.T) {
  11. gin.SetMode(gin.TestMode)
  12. context, _ := gin.CreateTestContext(httptest.NewRecorder())
  13. writer := acquireOpsCaptureWriter(context.Writer)
  14. defer releaseOpsCaptureWriter(writer)
  15. writer.setContext(context)
  16. context.Writer = writer
  17. middleware2.MarkIngressRejected(context, middleware2.IngressRejectInvalidAPIKey)
  18. context.Status(http.StatusUnauthorized)
  19. _, err := context.Writer.WriteString(`{"code":"INVALID_API_KEY","message":"Invalid API key"}`)
  20. require.NoError(t, err)
  21. require.Empty(t, writer.capturedBytes())
  22. }