allowed_client_skip_test.go 870 B

1234567891011121314151617181920212223242526272829
  1. package openai
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestMatchClientEntry_ReturnsHitEntry(t *testing.T) {
  7. entries := []AllowedClientEntry{
  8. {Originator: "opencode", UAContains: []string{"opencode/"}, SkipEngineFingerprint: true},
  9. {Originator: "Claude Code", UAContains: []string{"Claude Code/"}},
  10. }
  11. e, ok := MatchClientEntry("opencode/1.0", "opencode", entries)
  12. require.True(t, ok)
  13. require.True(t, e.SkipEngineFingerprint)
  14. e2, ok2 := MatchClientEntry("Claude Code/1.0 (x) (Claude Code; 1)", "Claude Code", entries)
  15. require.True(t, ok2)
  16. require.False(t, e2.SkipEngineFingerprint)
  17. _, ok3 := MatchClientEntry("curl/8", "evil", entries)
  18. require.False(t, ok3)
  19. // 薄封装保持兼容
  20. require.True(t, MatchClientEntries("opencode/1.0", "opencode", entries))
  21. require.False(t, MatchClientEntries("curl/8", "evil", entries))
  22. }