package app

import (
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/internal/store/app/registry"
)

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

	query, args, err := registry.BuildLoadLatestInstallableMetadataQuery([]string{"app-1", "app-2"})
	require.NoError(t, err)
	require.Equal(t, []any{"app-1", "app-2"}, args)
	require.Contains(t, query, "WITH requested_apps AS (")
	require.Contains(t, query, "SELECT $1 AS app_id")
	require.Contains(t, query, "SELECT $2 AS app_id")
	require.NotContains(t, query, "usr-1")
	require.NotContains(t, query, "LATERAL")
	require.NotContains(t, query, "ARRAY(")
	require.NotContains(t, query, "jsonb_")
	require.NotContains(t, query, "::jsonb")
}
