package organization

import (
	"net/url"
	"testing"

	"github.com/stretchr/testify/require"
)

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

	client, err := NewFeishuAuthHTTPClient(FeishuAuthHTTPClientOptions{
		BaseURL:   "https://open.feishu.cn",
		AppID:     "cli_test_app",
		AppSecret: "test-secret",
	})
	require.NoError(t, err)

	authorizeURL, err := client.BuildAuthorizeURL("https://agentteam.test/login", "state-token")
	require.NoError(t, err)

	parsed, err := url.Parse(authorizeURL)
	require.NoError(t, err)
	require.Equal(t, "accounts.feishu.cn", parsed.Host)
	require.Equal(t, feishuAuthAuthorizePath, parsed.Path)
	require.Equal(t, "cli_test_app", parsed.Query().Get("client_id"))
	require.Equal(t, "code", parsed.Query().Get("response_type"))
	require.Equal(t, "https://agentteam.test/login", parsed.Query().Get("redirect_uri"))
	require.Equal(t, "state-token", parsed.Query().Get("state"))
	require.Equal(t, feishuAuthRequiredScopeUserID, parsed.Query().Get("scope"))
}
