package trigger

import (
	"testing"

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

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

func TestRegisterRoutesOwnsTriggerRoutes(t *testing.T) {
	t.Parallel()

	router := gin.New()
	RegisterRoutes(router, Dependencies{})

	counts := httputil.RouteCounts(router)
	for _, route := range triggerRouteKeys() {
		require.Equal(t, 1, counts[route], route)
	}
}

func triggerRouteKeys() []string {
	return []string{
		"GET /api/v1/workspaces/:workspaceId/triggers",
		"POST /api/v1/workspaces/:workspaceId/triggers",
		"POST /api/v1/workspaces/:workspaceId/triggers:validate",
		"GET /api/v1/workspaces/:workspaceId/triggers/:triggerId",
		"PATCH /api/v1/workspaces/:workspaceId/triggers/:triggerId",
		"POST /api/v1/workspaces/:workspaceId/triggers/:triggerAction",
		"DELETE /api/v1/workspaces/:workspaceId/triggers/:triggerId",
		"GET /api/v1/workspaces/:workspaceId/triggers/:triggerId/runs",
	}
}
