46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package tencentim
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// TestGenerateUserSigUsesInternalUserID 验证 gateway 签发给客户端的腾讯云 IM 标识只使用不可变长 user_id。
|
|
func TestGenerateUserSigUsesInternalUserID(t *testing.T) {
|
|
now := time.Unix(1_700_000_000, 0)
|
|
|
|
result, err := GenerateUserSig(UserSigConfig{
|
|
SDKAppID: 1400000000,
|
|
SecretKey: "secret",
|
|
TTL: time.Hour,
|
|
}, FormatUserID(10001), now)
|
|
if err != nil {
|
|
t.Fatalf("GenerateUserSig failed: %v", err)
|
|
}
|
|
|
|
if result.SDKAppID != 1400000000 {
|
|
t.Fatalf("sdk_app_id mismatch: got %d", result.SDKAppID)
|
|
}
|
|
if result.UserID != "10001" {
|
|
t.Fatalf("user_id mismatch: got %q", result.UserID)
|
|
}
|
|
if result.UserSig == "" {
|
|
t.Fatalf("usersig should not be empty")
|
|
}
|
|
if result.ExpireAtMS != now.Add(time.Hour).UnixMilli() {
|
|
t.Fatalf("expire_at_ms mismatch: got %d", result.ExpireAtMS)
|
|
}
|
|
}
|
|
|
|
// TestGenerateUserSigFailsClosed 验证配置缺失时不会给客户端返回假票据。
|
|
func TestGenerateUserSigFailsClosed(t *testing.T) {
|
|
_, err := GenerateUserSig(UserSigConfig{
|
|
SDKAppID: 0,
|
|
SecretKey: "",
|
|
TTL: time.Hour,
|
|
}, "10001", time.Unix(1_700_000_000, 0))
|
|
if err == nil {
|
|
t.Fatalf("GenerateUserSig should reject incomplete config")
|
|
}
|
|
}
|