mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
feat: added modules
This commit is contained in:
91
core/controllers/router_v2_test.go
Normal file
91
core/controllers/router_v2_test.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package controllers_test
|
||||
|
||||
import (
|
||||
"github.com/crawlab-team/crawlab/core/controllers"
|
||||
"github.com/crawlab-team/crawlab/core/models/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRouterGroups(t *testing.T) {
|
||||
router := gin.Default()
|
||||
groups := controllers.NewRouterGroups(router)
|
||||
|
||||
assertions := []struct {
|
||||
group *gin.RouterGroup
|
||||
name string
|
||||
}{
|
||||
{groups.AuthGroup, "AuthGroup"},
|
||||
{groups.AnonymousGroup, "AnonymousGroup"},
|
||||
}
|
||||
|
||||
for _, a := range assertions {
|
||||
assert.NotNil(t, a.group, a.name+" should not be nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegisterController_Routes(t *testing.T) {
|
||||
router := gin.Default()
|
||||
groups := controllers.NewRouterGroups(router)
|
||||
ctr := controllers.NewControllerV2[models.TestModel]()
|
||||
basePath := "/testmodels"
|
||||
|
||||
controllers.RegisterController(groups.AuthGroup, basePath, ctr)
|
||||
|
||||
// Check if all routes are registered
|
||||
routes := router.Routes()
|
||||
|
||||
var methodPaths []string
|
||||
for _, route := range routes {
|
||||
methodPaths = append(methodPaths, route.Method+" - "+route.Path)
|
||||
}
|
||||
|
||||
expectedRoutes := []gin.RouteInfo{
|
||||
{Method: "GET", Path: basePath},
|
||||
{Method: "GET", Path: basePath + "/:id"},
|
||||
{Method: "POST", Path: basePath},
|
||||
{Method: "PUT", Path: basePath + "/:id"},
|
||||
{Method: "PATCH", Path: basePath},
|
||||
{Method: "DELETE", Path: basePath + "/:id"},
|
||||
{Method: "DELETE", Path: basePath},
|
||||
}
|
||||
|
||||
assert.Equal(t, len(expectedRoutes), len(routes))
|
||||
for _, route := range expectedRoutes {
|
||||
assert.Contains(t, methodPaths, route.Method+" - "+route.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInitRoutes_ProjectsRoute(t *testing.T) {
|
||||
router := gin.Default()
|
||||
|
||||
controllers.InitRoutes(router)
|
||||
|
||||
// Check if the projects route is registered
|
||||
routes := router.Routes()
|
||||
|
||||
var methodPaths []string
|
||||
for _, route := range routes {
|
||||
methodPaths = append(methodPaths, route.Method+" - "+route.Path)
|
||||
}
|
||||
|
||||
expectedRoutes := []gin.RouteInfo{
|
||||
{Method: "GET", Path: "/projects"},
|
||||
{Method: "GET", Path: "/projects/:id"},
|
||||
{Method: "POST", Path: "/projects"},
|
||||
{Method: "PUT", Path: "/projects/:id"},
|
||||
{Method: "PATCH", Path: "/projects"},
|
||||
{Method: "DELETE", Path: "/projects/:id"},
|
||||
{Method: "DELETE", Path: "/projects"},
|
||||
}
|
||||
|
||||
for _, route := range expectedRoutes {
|
||||
assert.Contains(t, methodPaths, route.Method+" - "+route.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
m.Run()
|
||||
}
|
||||
Reference in New Issue
Block a user