feat: Add request id middleware test
This commit is contained in:
9
internal/pkg/middleware/requestid.go
Normal file
9
internal/pkg/middleware/requestid.go
Normal file
@ -0,0 +1,9 @@
|
||||
package middleware
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
|
||||
func RequestID() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
ctx.Set("X-Request-Id", "123")
|
||||
}
|
||||
}
|
52
internal/pkg/middleware/requestid_test.go
Normal file
52
internal/pkg/middleware/requestid_test.go
Normal file
@ -0,0 +1,52 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const requestID = "X-Request-Id"
|
||||
|
||||
type header struct {
|
||||
Key string
|
||||
Value string
|
||||
}
|
||||
|
||||
func performRequest(
|
||||
r http.Handler,
|
||||
method, path string,
|
||||
headers ...header,
|
||||
) *httptest.ResponseRecorder {
|
||||
req := httptest.NewRequest(method, path, nil)
|
||||
for _, h := range headers {
|
||||
req.Header.Add(h.Key, h.Value)
|
||||
}
|
||||
w := httptest.NewRecorder()
|
||||
r.ServeHTTP(w, req)
|
||||
return w
|
||||
}
|
||||
|
||||
func TestRequestID(t *testing.T) {
|
||||
r := gin.New()
|
||||
r.Use(RequestID())
|
||||
var got string
|
||||
wanted := "123"
|
||||
|
||||
r.GET("/example", func(c *gin.Context) {
|
||||
got = c.GetString(requestID)
|
||||
c.Status(http.StatusOK)
|
||||
})
|
||||
|
||||
r.POST("/example", func(c *gin.Context) {
|
||||
got = c.GetString(requestID)
|
||||
c.String(http.StatusAccepted, "ok")
|
||||
})
|
||||
|
||||
// Test with Request ID
|
||||
_ = performRequest(r, "GET", "/example?a=100", header{requestID, wanted})
|
||||
assert.Equal(t, "123", got)
|
||||
}
|
Reference in New Issue
Block a user