|
@@ -7,7 +7,6 @@ import (
|
|
|
"github.com/go-nunu/nunu-layout-advanced/internal/handler"
|
|
|
"github.com/go-nunu/nunu-layout-advanced/mocks/service"
|
|
|
|
|
|
- "github.com/go-nunu/nunu-layout-advanced/internal/server"
|
|
|
"net/http"
|
|
|
"net/http/httptest"
|
|
|
"os"
|
|
@@ -28,16 +27,32 @@ var (
|
|
|
|
|
|
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiJ5aHM2SGVzZmdGIiwiZXhwIjoxNjkzOTE0ODgwLCJuYmYiOjE2ODYxMzg4ODAsImlhdCI6MTY4NjEzODg4MH0.NnFrZFgc_333a9PXqaoongmIDksNvQoHzgM_IhJM4MQ"
|
|
|
)
|
|
|
+var logger *log.Logger
|
|
|
var hdl *handler.Handler
|
|
|
+var jwt *middleware.JWT
|
|
|
+var router *gin.Engine
|
|
|
|
|
|
func TestMain(m *testing.M) {
|
|
|
fmt.Println("begin")
|
|
|
- os.Setenv("APP_CONF", "../../../config/local.yml")
|
|
|
+ err := os.Setenv("APP_CONF", "../../../config/local.yml")
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Setenv error", err)
|
|
|
+ }
|
|
|
conf := config.NewConfig()
|
|
|
|
|
|
- logger := log.NewLog(conf)
|
|
|
+ logger = log.NewLog(conf)
|
|
|
hdl = handler.NewHandler(logger)
|
|
|
|
|
|
+ jwt = middleware.NewJwt(conf)
|
|
|
+ gin.SetMode(gin.TestMode)
|
|
|
+ router = gin.Default()
|
|
|
+ router.Use(
|
|
|
+ middleware.CORSMiddleware(),
|
|
|
+ middleware.ResponseLogMiddleware(logger),
|
|
|
+ middleware.RequestLogMiddleware(logger),
|
|
|
+ //middleware.SignMiddleware(log),
|
|
|
+ )
|
|
|
+
|
|
|
code := m.Run()
|
|
|
fmt.Println("test end")
|
|
|
|
|
@@ -57,7 +72,9 @@ func TestUserHandler_Register(t *testing.T) {
|
|
|
mockUserService := mock_service.NewMockUserService(ctrl)
|
|
|
mockUserService.EXPECT().Register(gomock.Any(), ¶ms).Return(nil)
|
|
|
|
|
|
- router := setupRouter(mockUserService)
|
|
|
+ userHandler := handler.NewUserHandler(hdl, mockUserService)
|
|
|
+ router.POST("/register", userHandler.Register)
|
|
|
+
|
|
|
paramsJson, _ := json.Marshal(params)
|
|
|
|
|
|
resp := performRequest(router, "POST", "/register", bytes.NewBuffer(paramsJson))
|
|
@@ -78,7 +95,8 @@ func TestUserHandler_Login(t *testing.T) {
|
|
|
mockUserService := mock_service.NewMockUserService(ctrl)
|
|
|
mockUserService.EXPECT().Login(gomock.Any(), ¶ms).Return(token, nil)
|
|
|
|
|
|
- router := setupRouter(mockUserService)
|
|
|
+ userHandler := handler.NewUserHandler(hdl, mockUserService)
|
|
|
+ router.POST("/login", userHandler.Login)
|
|
|
paramsJson, _ := json.Marshal(params)
|
|
|
|
|
|
resp := performRequest(router, "POST", "/login", bytes.NewBuffer(paramsJson))
|
|
@@ -101,13 +119,15 @@ func TestUserHandler_GetProfile(t *testing.T) {
|
|
|
Email: "xxxxx@gmail.com",
|
|
|
}, nil)
|
|
|
|
|
|
- router := setupRouter(mockUserService)
|
|
|
+ userHandler := handler.NewUserHandler(hdl, mockUserService)
|
|
|
+ router.Use(middleware.NoStrictAuth(jwt, logger))
|
|
|
+ router.GET("/user", userHandler.GetProfile)
|
|
|
req, _ := http.NewRequest("GET", "/user", nil)
|
|
|
req.Header.Set("Authorization", "Bearer "+token)
|
|
|
+
|
|
|
resp := httptest.NewRecorder()
|
|
|
|
|
|
router.ServeHTTP(resp, req)
|
|
|
-
|
|
|
assert.Equal(t, resp.Code, http.StatusOK)
|
|
|
// Add assertions for the response body if needed
|
|
|
}
|
|
@@ -125,7 +145,9 @@ func TestUserHandler_UpdateProfile(t *testing.T) {
|
|
|
mockUserService := mock_service.NewMockUserService(ctrl)
|
|
|
mockUserService.EXPECT().UpdateProfile(gomock.Any(), userId, ¶ms).Return(nil)
|
|
|
|
|
|
- router := setupRouter(mockUserService)
|
|
|
+ userHandler := handler.NewUserHandler(hdl, mockUserService)
|
|
|
+ router.Use(middleware.StrictAuth(jwt, logger))
|
|
|
+ router.PUT("/user", userHandler.UpdateProfile)
|
|
|
paramsJson, _ := json.Marshal(params)
|
|
|
|
|
|
req, _ := http.NewRequest("PUT", "/user", bytes.NewBuffer(paramsJson))
|
|
@@ -139,16 +161,6 @@ func TestUserHandler_UpdateProfile(t *testing.T) {
|
|
|
// Add assertions for the response body if needed
|
|
|
}
|
|
|
|
|
|
-func setupRouter(mockUserService *mock_service.MockUserService) *gin.Engine {
|
|
|
- conf := config.NewConfig()
|
|
|
- logger := log.NewLog(conf)
|
|
|
- jwt := middleware.NewJwt(conf)
|
|
|
- userHandler := handler.NewUserHandler(hdl, mockUserService)
|
|
|
- gin.SetMode(gin.TestMode)
|
|
|
- router := server.NewServerHTTP(logger, jwt, userHandler)
|
|
|
- return router
|
|
|
-}
|
|
|
-
|
|
|
func performRequest(r http.Handler, method, path string, body *bytes.Buffer) *httptest.ResponseRecorder {
|
|
|
req, _ := http.NewRequest(method, path, body)
|
|
|
resp := httptest.NewRecorder()
|