| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package xai
- import (
- "net/http"
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestResolveCLIVersionDefaultsToPinnedClientVersion(t *testing.T) {
- t.Setenv(CLIVersionEnv, "")
- // Default advertise pin is CLIClientVersion; CLIStableVersion is only the floor.
- require.Equal(t, CLIClientVersion, ResolveCLIVersion())
- require.True(t, IsSupportedCLIVersion(CLIClientVersion))
- require.True(t, IsSupportedCLIVersion(CLIStableVersion))
- }
- func TestResolveCLIVersionAcceptsValidOverride(t *testing.T) {
- t.Setenv(CLIVersionEnv, "0.2.95-alpha.1")
- require.Equal(t, "0.2.95-alpha.1", ResolveCLIVersion())
- }
- func TestResolveCLIVersionRejectsUnsafeOrTooOld(t *testing.T) {
- for _, version := range []string{
- "0.2.92",
- "0.2.93-beta.1",
- "0.2.95\r\nX-Injected: true",
- "0.2.093",
- "0.3",
- "1",
- } {
- t.Run(version, func(t *testing.T) {
- t.Setenv(CLIVersionEnv, version)
- require.Equal(t, CLIClientVersion, ResolveCLIVersion())
- })
- }
- }
- func TestApplyCLIProxyHeaders(t *testing.T) {
- t.Setenv(CLIVersionEnv, "")
- req, err := http.NewRequest(http.MethodPost, "https://cli-chat-proxy.grok.com/v1/responses", nil)
- require.NoError(t, err)
- req.Header.Set("User-Agent", "legacy-client/1.0")
- ApplyCLIProxyHeaders(req)
- require.Equal(t, CLIClientVersion, req.Header.Get("x-grok-client-version"))
- require.Equal(t, CLIClientIdentifier, req.Header.Get("x-grok-client-identifier"))
- require.Equal(t, CLITokenAuth, req.Header.Get("X-XAI-Token-Auth"))
- require.Equal(t, CLIUserAgent(CLIClientVersion), req.Header.Get("User-Agent"))
- }
- func TestApplyCLIProxyHeadersLeavesAPIHostUnchanged(t *testing.T) {
- t.Setenv(CLIVersionEnv, "0.2.95")
- req, err := http.NewRequest(http.MethodPost, "https://api.x.ai/v1/responses", nil)
- require.NoError(t, err)
- req.Header.Set("User-Agent", "direct-api-client/1.0")
- ApplyCLIProxyHeaders(req)
- require.Empty(t, req.Header.Get("x-grok-client-version"))
- require.Empty(t, req.Header.Get("x-grok-client-identifier"))
- require.Empty(t, req.Header.Get("X-XAI-Token-Auth"))
- require.Equal(t, "direct-api-client/1.0", req.Header.Get("User-Agent"))
- }
|