Files
dobotai-platform/internal/session/key_test.go
2026-07-20 11:47:37 +08:00

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)
}
})
}
}