fix(opencode): serve передаёт OPENCODE_CONFIG — детерминированный выбор модели
This commit is contained in:
@@ -198,4 +198,38 @@ func atoiOrZero(s string) int {
|
||||
n = n*10 + int(c-'0')
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func TestServeCmd_SetsOpenCodeConfig(t *testing.T) {
|
||||
// serveCmd должен всегда передавать OPENCODE_CONFIG: без него serve может
|
||||
// не подхватить модель/провайдеров из глобального конфига.
|
||||
s := &Server{}
|
||||
s.defaults()
|
||||
cmd := s.serveCmd(context.Background())
|
||||
if cmd.Env == nil {
|
||||
t.Fatal("serveCmd: Env не задан")
|
||||
}
|
||||
prefix := "OPENCODE_CONFIG="
|
||||
path := ""
|
||||
for _, kv := range cmd.Env {
|
||||
if strings.HasPrefix(kv, prefix) {
|
||||
path = strings.TrimPrefix(kv, prefix)
|
||||
break
|
||||
}
|
||||
}
|
||||
if path == "" {
|
||||
t.Fatal("serveCmd: OPENCODE_CONFIG не выставлен")
|
||||
}
|
||||
if want := s.ConfigPath; path != want {
|
||||
t.Errorf("OPENCODE_CONFIG = %q, want %q", path, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestServerCmd_CustomOpenCodeConfig(t *testing.T) {
|
||||
// явно заданный путь переопределяет дефолтный
|
||||
s := &Server{ConfigPath: `C:\custom\opencode.jsonc`}
|
||||
s.defaults()
|
||||
if s.ConfigPath != `C:\custom\opencode.jsonc` {
|
||||
t.Errorf("ConfigPath = %q, want explicit", s.ConfigPath)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user