first commit
This commit is contained in:
51
framework/modelcatalog/refine_test.go
Normal file
51
framework/modelcatalog/refine_test.go
Normal file
@@ -0,0 +1,51 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user