package teamworkflow

import (
	"testing"

	"github.com/gin-gonic/gin"
	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/internal/api/testkit/httputil"
)

func TestRegisterRoutesMountsNestedReadLifecycleAndDeleteEndpoint(t *testing.T) {
	gin.SetMode(gin.TestMode)
	router := gin.New()
	RegisterRoutes(router, Dependencies{Service: &fakeService{}})

	routes := httputil.RouteCounts(router)
	require.Equal(t, 1, routes["GET /api/v1/workspaces/:workspaceId/teams/:teamId/workflows"])
	require.Equal(t, 1, routes["GET /api/v1/workspaces/:workspaceId/teams/:teamId/workflows/:teamWorkflowId"])
	require.Equal(t, 1, routes["POST /api/v1/workspaces/:workspaceId/teams/:teamId/workflows/:teamWorkflowId/archive"])
	require.Equal(t, 1, routes["POST /api/v1/workspaces/:workspaceId/teams/:teamId/workflows/:teamWorkflowId/restore"])
	require.Equal(t, 1, routes["DELETE /api/v1/workspaces/:workspaceId/teams/:teamId/workflows/:teamWorkflowId"])
	require.Len(t, routes, 5)
}

func TestRegisterRoutesSkipsUnconfiguredService(t *testing.T) {
	router := gin.New()
	RegisterRoutes(router, Dependencies{})
	require.Empty(t, router.Routes())
}
