package access

import (
	"testing"

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

func TestNewSyncLeaseRequestDedupesRepositoriesButPreservesCapabilities(t *testing.T) {
	req := NewSyncLeaseRequest(
		" ws_1 ",
		" usr_1 ",
		" github.com ",
		" Memory sync lease ",
		[]string{" ws_1/runbooks.mem ", "WS_1/RUNBOOKS.MEM", "", "ws_1/other.mem"},
		[]string{CapabilityRead, CapabilityClone, CapabilityRead, ""},
	)

	require.Equal(t, "ws_1", req.WorkspaceID)
	require.Equal(t, "usr_1", req.ActorPrincipalID)
	require.Equal(t, "github.com", req.ProviderHost)
	require.Equal(t, "Memory sync lease", req.DisplayName)
	require.Equal(t, []string{"ws_1/runbooks.mem", "ws_1/other.mem"}, req.Repositories)
	require.Equal(t, []string{CapabilityRead, CapabilityClone}, req.Capabilities)
}
