78 lines
2.3 KiB
Go
78 lines
2.3 KiB
Go
package tencentrtc
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// TestGenerateTokenUsesInternalUserIDAndStringRoomID verifies the Phase 2 mapping contract.
|
|
func TestGenerateTokenUsesInternalUserIDAndStringRoomID(t *testing.T) {
|
|
now := time.Unix(1_700_000_000, 0)
|
|
|
|
result, err := GenerateToken(TokenConfig{
|
|
Enabled: true,
|
|
SDKAppID: 1400000000,
|
|
SecretKey: "secret",
|
|
TTL: 2 * time.Hour,
|
|
RoomIDType: RoomIDTypeString,
|
|
AppScene: AppSceneVoiceChatRoom,
|
|
}, 10001, "room_1001", now)
|
|
if err != nil {
|
|
t.Fatalf("GenerateToken failed: %v", err)
|
|
}
|
|
|
|
if result.UserID != "10001" || result.RTCUserID != "10001" {
|
|
t.Fatalf("rtc user id mismatch: %+v", result)
|
|
}
|
|
if result.RoomID != "room_1001" || result.StrRoomID != "room_1001" || result.RTCRoomIDType != RoomIDTypeString {
|
|
t.Fatalf("rtc room id mismatch: %+v", result)
|
|
}
|
|
if result.Role != RoleAudience || result.AppScene != AppSceneVoiceChatRoom {
|
|
t.Fatalf("rtc policy mismatch: %+v", result)
|
|
}
|
|
if result.UserSig == "" || result.ExpireAtMS != now.Add(2*time.Hour).UnixMilli() {
|
|
t.Fatalf("usersig fields mismatch: %+v", result)
|
|
}
|
|
}
|
|
|
|
// TestGenerateTokenFailsClosed verifies disabled or unsupported RTC config never signs.
|
|
func TestGenerateTokenFailsClosed(t *testing.T) {
|
|
_, err := GenerateToken(TokenConfig{
|
|
Enabled: false,
|
|
SDKAppID: 1400000000,
|
|
SecretKey: "secret",
|
|
TTL: time.Hour,
|
|
RoomIDType: RoomIDTypeString,
|
|
AppScene: AppSceneVoiceChatRoom,
|
|
}, 10001, "room_1001", time.Unix(1_700_000_000, 0))
|
|
if err == nil {
|
|
t.Fatalf("GenerateToken should reject disabled rtc config")
|
|
}
|
|
|
|
_, err = GenerateToken(TokenConfig{
|
|
Enabled: true,
|
|
SDKAppID: 1400000000,
|
|
SecretKey: "secret",
|
|
TTL: time.Hour,
|
|
RoomIDType: "number",
|
|
AppScene: AppSceneVoiceChatRoom,
|
|
}, 10001, "room_1001", time.Unix(1_700_000_000, 0))
|
|
if err == nil {
|
|
t.Fatalf("GenerateToken should reject unsupported room_id_type")
|
|
}
|
|
}
|
|
|
|
func TestGenerateTokenRejectsInvalidRoomID(t *testing.T) {
|
|
_, err := GenerateToken(TokenConfig{
|
|
Enabled: true,
|
|
SDKAppID: 1400000000,
|
|
SecretKey: "secret",
|
|
TTL: time.Hour,
|
|
RoomIDType: RoomIDTypeString,
|
|
AppScene: AppSceneVoiceChatRoom,
|
|
}, 10001, "room:1001", time.Unix(1_700_000_000, 0))
|
|
if err == nil {
|
|
t.Fatalf("GenerateToken should reject invalid room_id")
|
|
}
|
|
}
|