52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"slices"
|
|
"testing"
|
|
|
|
"github.com/yetone/magpie/internal/catalog"
|
|
"github.com/yetone/magpie/internal/provider"
|
|
"github.com/yetone/magpie/internal/settings"
|
|
)
|
|
|
|
// magpie model name and --reset keep and drop the user's name for a
|
|
// provider's model, a name of several words included.
|
|
func TestModelNameCmd(t *testing.T) {
|
|
groupsHome(t)
|
|
catalog.Changed = nil // no agent's files are rewritten here
|
|
if err := modelCmd([]string{"name", "a/m", "My", "Model"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if n, ok := provider.ModelName("a", "m"); !ok || n != "My Model" {
|
|
t.Fatal(n, ok)
|
|
}
|
|
if err := modelCmd([]string{"name", "a/m"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := modelCmd([]string{"names"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := modelCmd([]string{"name", "a/m", "--reset"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, ok := provider.ModelName("a", "m"); ok {
|
|
t.Fatal("still named")
|
|
}
|
|
if err := modelCmd([]string{"name", "m", "x"}); err == nil {
|
|
t.Fatal("named a model without its provider")
|
|
}
|
|
// a model whose reasoning levels aren't known can be given some
|
|
if err := modelCmd([]string{"efforts", "a/m", "low,high"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if es := settings.Load().ModelEfforts["a/m"]; !slices.Equal(es, []string{"low", "high"}) {
|
|
t.Fatal(settings.Load().ModelEfforts)
|
|
}
|
|
if err := modelCmd([]string{"efforts", "a/m", "--reset"}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if es := settings.Load().ModelEfforts; len(es) != 0 {
|
|
t.Fatal(es)
|
|
}
|
|
}
|