You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

50 lines
1.7 KiB

  1. package middleware
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. // ---------------------------------------------------------------------------
  7. // parseTokenKey — 渠道选择删除后的验证测试
  8. // ---------------------------------------------------------------------------
  9. func TestParseTokenKey_SimpleKey(t *testing.T) {
  10. key, parts := parseTokenKey("sk-abc123")
  11. assert.Equal(t, "abc123", key)
  12. assert.Equal(t, []string{"abc123"}, parts)
  13. }
  14. func TestParseTokenKey_KeyWithDash(t *testing.T) {
  15. // "sk-abc123-42" 中 "-" 用于分割,parts[0]="abc123" 就是 key
  16. // parts[1]="42" 不再被解释为 channelId(渠道选择功能已删除)
  17. key, parts := parseTokenKey("sk-abc123-42")
  18. assert.Equal(t, "abc123", key)
  19. assert.Equal(t, []string{"abc123", "42"}, parts)
  20. // 验证:parts[1] 存在但不会被用于渠道选择
  21. // 渠道选择功能已删除,parseTokenKey 仅返回 parts,不解析 channelId
  22. }
  23. func TestParseTokenKey_ColonFormat(t *testing.T) {
  24. // 旧格式 "sk-abc123:42" 中 ":" 不再被解析为 channelId
  25. // parseTokenKey 只按 "-" 分割,":" 会保留在 parts[0] 中
  26. key, parts := parseTokenKey("sk-abc123:42")
  27. assert.Equal(t, "abc123:42", key)
  28. assert.Equal(t, []string{"abc123:42"}, parts)
  29. // 旧行为会返回 key="abc123" 并提取 channelId=42
  30. // 新行为:":" 被当作 key 的一部分,不做特殊处理
  31. }
  32. func TestParseTokenKey_EmptyKey(t *testing.T) {
  33. key, parts := parseTokenKey("sk-")
  34. assert.Equal(t, "", key)
  35. assert.Equal(t, []string{""}, parts)
  36. }
  37. func TestParseTokenKey_MultipleDashes(t *testing.T) {
  38. key, parts := parseTokenKey("sk-abc-def-ghi")
  39. assert.Equal(t, "abc", key)
  40. assert.Equal(t, []string{"abc", "def", "ghi"}, parts)
  41. }