43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
package session
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gitea.zheromiku.top/Weknora/dobotai-platform/internal/core"
|
|
)
|
|
|
|
func TestBuildKeyPolicies(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
in Identity
|
|
want string
|
|
}{
|
|
{
|
|
name: "direct user long lived",
|
|
in: Identity{TenantKey: "tenant-a", Channel: "dingtalk", AgentID: "agent-1", ConversationType: core.ConversationDirect, ExternalUserID: "user-7"},
|
|
want: "v1:tenant-a:dingtalk:agent-1:user:user-7",
|
|
},
|
|
{
|
|
name: "group shared",
|
|
in: Identity{TenantKey: "tenant-a", Channel: "dingtalk", AgentID: "agent-1", ConversationType: core.ConversationGroup, ExternalChatID: "group-9", ExternalUserID: "user-7", GroupPolicy: GroupShared},
|
|
want: "v1:tenant-a:dingtalk:agent-1:group:group-9",
|
|
},
|
|
{
|
|
name: "group per user",
|
|
in: Identity{TenantKey: "tenant-a", Channel: "dingtalk", AgentID: "agent-1", ConversationType: core.ConversationGroup, ExternalChatID: "group-9", ExternalUserID: "user-7", GroupPolicy: GroupPerUser},
|
|
want: "v1:tenant-a:dingtalk:agent-1:group-user:group-9:user-7",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, _, err := BuildKey(tt.in)
|
|
if err != nil {
|
|
t.Fatalf("BuildKey: %v", err)
|
|
}
|
|
if got != tt.want {
|
|
t.Fatalf("key=%q want=%q", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|