package middleware import ( "testing" "github.com/stretchr/testify/assert" ) // --------------------------------------------------------------------------- // parseTokenKey — 渠道选择删除后的验证测试 // --------------------------------------------------------------------------- func TestParseTokenKey_SimpleKey(t *testing.T) { key, parts := parseTokenKey("sk-abc123") assert.Equal(t, "abc123", key) assert.Equal(t, []string{"abc123"}, parts) } func TestParseTokenKey_KeyWithDash(t *testing.T) { // "sk-abc123-42" 中 "-" 用于分割,parts[0]="abc123" 就是 key // parts[1]="42" 不再被解释为 channelId(渠道选择功能已删除) key, parts := parseTokenKey("sk-abc123-42") assert.Equal(t, "abc123", key) assert.Equal(t, []string{"abc123", "42"}, parts) // 验证:parts[1] 存在但不会被用于渠道选择 // 渠道选择功能已删除,parseTokenKey 仅返回 parts,不解析 channelId } func TestParseTokenKey_ColonFormat(t *testing.T) { // 旧格式 "sk-abc123:42" 中 ":" 不再被解析为 channelId // parseTokenKey 只按 "-" 分割,":" 会保留在 parts[0] 中 key, parts := parseTokenKey("sk-abc123:42") assert.Equal(t, "abc123:42", key) assert.Equal(t, []string{"abc123:42"}, parts) // 旧行为会返回 key="abc123" 并提取 channelId=42 // 新行为:":" 被当作 key 的一部分,不做特殊处理 } func TestParseTokenKey_EmptyKey(t *testing.T) { key, parts := parseTokenKey("sk-") assert.Equal(t, "", key) assert.Equal(t, []string{""}, parts) } func TestParseTokenKey_MultipleDashes(t *testing.T) { key, parts := parseTokenKey("sk-abc-def-ghi") assert.Equal(t, "abc", key) assert.Equal(t, []string{"abc", "def", "ghi"}, parts) }