mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-10-28 04:35:40 +00:00
tests: test user context handler with no context
This commit is contained in:
@@ -34,16 +34,17 @@ var userContext = config.UserContext{
|
|||||||
TotpEnabled: false,
|
TotpEnabled: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupContextController() (*gin.Engine, *httptest.ResponseRecorder) {
|
func setupContextController(middlewares *[]gin.HandlerFunc) (*gin.Engine, *httptest.ResponseRecorder) {
|
||||||
// Setup
|
// Setup
|
||||||
gin.SetMode(gin.TestMode)
|
gin.SetMode(gin.TestMode)
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
|
|
||||||
router.Use(func(c *gin.Context) {
|
if middlewares != nil {
|
||||||
c.Set("context", &userContext)
|
for _, m := range *middlewares {
|
||||||
c.Next()
|
router.Use(m)
|
||||||
})
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group := router.Group("/api")
|
group := router.Group("/api")
|
||||||
|
|
||||||
@@ -67,7 +68,7 @@ func TestAppContextHandler(t *testing.T) {
|
|||||||
OAuthAutoRedirect: controllerCfg.OAuthAutoRedirect,
|
OAuthAutoRedirect: controllerCfg.OAuthAutoRedirect,
|
||||||
}
|
}
|
||||||
|
|
||||||
router, recorder := setupContextController()
|
router, recorder := setupContextController(nil)
|
||||||
req := httptest.NewRequest("GET", "/api/context/app", nil)
|
req := httptest.NewRequest("GET", "/api/context/app", nil)
|
||||||
router.ServeHTTP(recorder, req)
|
router.ServeHTTP(recorder, req)
|
||||||
|
|
||||||
@@ -94,7 +95,14 @@ func TestUserContextHandler(t *testing.T) {
|
|||||||
TotpPending: userContext.TotpPending,
|
TotpPending: userContext.TotpPending,
|
||||||
}
|
}
|
||||||
|
|
||||||
router, recorder := setupContextController()
|
// Test with context
|
||||||
|
router, recorder := setupContextController(&[]gin.HandlerFunc{
|
||||||
|
func(c *gin.Context) {
|
||||||
|
c.Set("context", &userContext)
|
||||||
|
c.Next()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
req := httptest.NewRequest("GET", "/api/context/user", nil)
|
req := httptest.NewRequest("GET", "/api/context/user", nil)
|
||||||
router.ServeHTTP(recorder, req)
|
router.ServeHTTP(recorder, req)
|
||||||
|
|
||||||
@@ -106,4 +114,22 @@ func TestUserContextHandler(t *testing.T) {
|
|||||||
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.DeepEqual(t, expectedRes, ctrlRes)
|
assert.DeepEqual(t, expectedRes, ctrlRes)
|
||||||
|
|
||||||
|
// Test no context
|
||||||
|
expectedRes = controller.UserContextResponse{
|
||||||
|
Status: 401,
|
||||||
|
Message: "Unauthorized",
|
||||||
|
IsLoggedIn: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
router, recorder = setupContextController(nil)
|
||||||
|
req = httptest.NewRequest("GET", "/api/context/user", nil)
|
||||||
|
router.ServeHTTP(recorder, req)
|
||||||
|
|
||||||
|
assert.Equal(t, 200, recorder.Code)
|
||||||
|
|
||||||
|
err = json.Unmarshal(recorder.Body.Bytes(), &ctrlRes)
|
||||||
|
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.DeepEqual(t, expectedRes, ctrlRes)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user