mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2026-04-23 00:17:25 +08:00
0a92e96f20
* [Feature] add golang router * [Feature] add golang router * [Feature] add golang router * [Feature] add golang router * [Feature] add golang router * [Feature] Add Golang-based Router for Request Scheduling and Load Balancing * [Feature] Add Golang-based Router for Request Scheduling and Load Balancing * [Feature] Add Golang-based Router for Request Scheduling and Load Balancing * [Feature] Add Golang-based Router for Request Scheduling and Load Balancing --------- Co-authored-by: mouxin <mouxin@baidu.com>
49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/PaddlePaddle/FastDeploy/router/pkg/logger"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func init() {
|
|
// Initialize logger to avoid nil pointer dereference in recovery middleware
|
|
logger.Init("info", "stdout")
|
|
}
|
|
|
|
func TestLoggerMiddleware(t *testing.T) {
|
|
router := gin.New()
|
|
router.Use(Logger())
|
|
|
|
router.GET("/test", func(c *gin.Context) {
|
|
c.String(200, "OK")
|
|
})
|
|
|
|
w := httptest.NewRecorder()
|
|
req, _ := http.NewRequest("GET", "/test", nil)
|
|
router.ServeHTTP(w, req)
|
|
|
|
assert.Equal(t, 200, w.Code)
|
|
}
|
|
|
|
func TestRecoveryMiddleware(t *testing.T) {
|
|
router := gin.New()
|
|
router.Use(Recovery())
|
|
|
|
router.GET("/panic", func(c *gin.Context) {
|
|
panic("test panic")
|
|
})
|
|
|
|
w := httptest.NewRecorder()
|
|
req, _ := http.NewRequest("GET", "/panic", nil)
|
|
router.ServeHTTP(w, req)
|
|
|
|
assert.Equal(t, 500, w.Code)
|
|
// The response should contain the error message
|
|
assert.Contains(t, w.Body.String(), "Internal server error")
|
|
}
|