Files
bifrost/framework/modelcatalog/refine_test.go
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

52 lines
1.8 KiB
Go

package modelcatalog
import (
"testing"
"github.com/maximhq/bifrost/core/schemas"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
// TestRefineModelForProvider_ReplicateRefinesOpenAIModel verifies that
// Replicate can recover nested provider slugs for provider-pinned OpenAI-family models.
func TestRefineModelForProvider_ReplicateRefinesOpenAIModel(t *testing.T) {
mc := newTestCatalog(map[schemas.ModelProvider][]string{
schemas.Replicate: {"openai/gpt-5-nano"},
}, map[string]string{
"openai/gpt-5-nano": "gpt-5-nano",
})
refined, err := mc.RefineModelForProvider(schemas.Replicate, "gpt-5-nano")
require.NoError(t, err)
assert.Equal(t, "openai/gpt-5-nano", refined)
}
// TestRefineModelForProvider_ReplicatePreservesOwnerSlashModel verifies that
// standard Replicate owner/model slugs are not mistaken for nested provider slugs.
func TestRefineModelForProvider_ReplicatePreservesOwnerSlashModel(t *testing.T) {
mc := newTestCatalog(map[schemas.ModelProvider][]string{
schemas.Replicate: {"meta/meta-llama-3-8b"},
}, nil)
refined, err := mc.RefineModelForProvider(schemas.Replicate, "meta/meta-llama-3-8b")
require.NoError(t, err)
assert.Equal(t, "meta/meta-llama-3-8b", refined)
}
// TestRefineModelForProvider_ReplicateReturnsAmbiguousMatchError verifies that
// refinement fails fast when multiple nested provider slugs match the same base model.
func TestRefineModelForProvider_ReplicateReturnsAmbiguousMatchError(t *testing.T) {
mc := newTestCatalog(map[schemas.ModelProvider][]string{
schemas.Replicate: {
"openai/gpt-5-nano",
"xai/gpt-5-nano",
},
}, nil)
refined, err := mc.RefineModelForProvider(schemas.Replicate, "gpt-5-nano")
require.Error(t, err)
assert.Empty(t, refined)
assert.Contains(t, err.Error(), "multiple compatible models found")
}