request_version_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. package openai
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestParseCodexEngineVersion(t *testing.T) {
  7. cases := []struct {
  8. name string
  9. ua string
  10. wantVer string
  11. wantOK bool
  12. }{
  13. {"cli", "codex_cli_rs/0.141.0 (Ubuntu 22.4.0; x86_64) xterm", "0.141.0", true},
  14. {"tui trailer", "codex-tui/0.140.2 (Mac OS X 14.0; arm64) iTerm (codex-tui; 0.140.2)", "0.140.2", true},
  15. {"cccc override prefix", "cccc/0.142.0 (Ubuntu 22.4.0; x86_64) screen (codex-tui; 0.142.0)", "0.142.0", true},
  16. {"desktop space prefix", "Codex Desktop/0.139.0 (Mac OS X 14; arm64) unknown", "0.139.0", true},
  17. {"alpha suffix keeps xyz", "codex_cli_rs/0.143.0-alpha.2 (Ubuntu; x86_64) x", "0.143.0", true},
  18. {"no slash", "curl 8.0", "", false},
  19. {"non numeric", "codex_cli_rs/abc (x)", "", false},
  20. {"empty", "", "", false},
  21. }
  22. for _, tc := range cases {
  23. t.Run(tc.name, func(t *testing.T) {
  24. ver, ok := ParseCodexEngineVersion(tc.ua)
  25. require.Equal(t, tc.wantOK, ok)
  26. require.Equal(t, tc.wantVer, ver)
  27. })
  28. }
  29. }