Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
75 lines
2.8 KiB
Go
75 lines
2.8 KiB
Go
package xai
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDefaultModelMappingExcludesCrossClientWildcards(t *testing.T) {
|
|
original := RuntimeModelMappingOptions()
|
|
t.Cleanup(func() { SetRuntimeModelMappingOptions(original) })
|
|
SetRuntimeModelMappingOptions(ModelMappingOptions{})
|
|
mapping := DefaultModelMapping()
|
|
|
|
require.Equal(t, "grok-4.5", mapping["grok"])
|
|
require.Equal(t, "grok-4.5", mapping["grok-latest"])
|
|
require.Equal(t, "grok-build-0.1", mapping["grok-build"])
|
|
require.Equal(t, DefaultTextModel, mapping["grok-build-latest"])
|
|
require.Equal(t, DefaultImagineImageQualityModel, mapping["grok-imagine-edit"])
|
|
require.Equal(t, DefaultImagineVideo15LegacyModel, mapping["grok-imagine-video-1.5"])
|
|
require.Equal(t, DefaultImagineVideo15Model, mapping["grok-imagine-video-1.5-preview"])
|
|
require.Equal(t, "grok-4.5", mapping["xai/grok"])
|
|
|
|
// Cross-vendor wildcards must stay opt-in.
|
|
_, hasGPT := mapping["gpt-*"]
|
|
_, hasClaude := mapping["claude-*"]
|
|
require.False(t, hasGPT)
|
|
require.False(t, hasClaude)
|
|
}
|
|
|
|
func TestModelMappingWithOptionsCrossClient(t *testing.T) {
|
|
t.Parallel()
|
|
mapping := ModelMappingWithOptions(ModelMappingOptions{
|
|
DefaultText: "grok-4.3",
|
|
EnableCrossClientMap: true,
|
|
})
|
|
require.Equal(t, "grok-4.3", mapping["grok"])
|
|
require.Equal(t, "grok-4.3", mapping["gpt-*"])
|
|
require.Equal(t, "grok-4.3", mapping["claude-*"])
|
|
require.Equal(t, "grok-4.3", mapping["codex-*"])
|
|
}
|
|
|
|
func TestCanonicalImagineVideoModel(t *testing.T) {
|
|
t.Parallel()
|
|
require.Equal(t, DefaultImagineVideoModel, CanonicalImagineVideoModel("grok-imagine-video"))
|
|
require.Equal(t, DefaultImagineVideo15Model, CanonicalImagineVideoModel("grok-imagine-video-1.5"))
|
|
require.Equal(t, DefaultImagineVideo15Model, CanonicalImagineVideoModel("grok-imagine-video-1.5-preview"))
|
|
require.Equal(t, DefaultImagineVideo15Model, CanonicalImagineVideoModel("xai/grok-video-1.5"))
|
|
require.Equal(t, "grok-imagine-video-2", CanonicalImagineVideoModel("grok-imagine-video-2"))
|
|
}
|
|
|
|
func TestIsGrokModelID(t *testing.T) {
|
|
t.Parallel()
|
|
require.True(t, IsGrokModelID("grok-4.5"))
|
|
require.True(t, IsGrokModelID("grok-4.6"))
|
|
require.True(t, IsGrokModelID("x-ai/grok-4.3"))
|
|
require.False(t, IsGrokModelID("gpt-5"))
|
|
require.False(t, IsGrokModelID("claude-sonnet-4"))
|
|
}
|
|
|
|
func TestDefaultModelsIncludesGrok46(t *testing.T) {
|
|
t.Parallel()
|
|
ids := DefaultModelIDs()
|
|
require.Contains(t, ids, "grok-4.6")
|
|
require.Equal(t, "grok-4.6", ResolveGrokTextResponsesModelID("grok-4.6"))
|
|
require.Equal(t, "grok-4.6", ResolveGrokTextResponsesModelID("grok-4.6-latest"))
|
|
}
|
|
|
|
func TestResolveGrokTextResponsesModelID(t *testing.T) {
|
|
t.Parallel()
|
|
require.Equal(t, "grok-4.5", ResolveGrokTextResponsesModelID(""))
|
|
require.Equal(t, "grok-4.3", ResolveGrokTextResponsesModelID("grok", "grok-4.3"))
|
|
require.Equal(t, "grok-4.20-multi-agent-0309", ResolveGrokTextResponsesModelID("grok-4.20-multi-agent"))
|
|
}
|