35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
package registry
|
|
|
|
import "testing"
|
|
|
|
// TestDefaultCaps_UnknownModelStillReportsUsage sichert einen konkreten Bug
|
|
// ab: für unbekannte Modelle (z.B. neue OpenAI-Modelle, die noch nicht in
|
|
// `known` stehen) darf UsageInStream nicht fälschlich auf false fallen —
|
|
// sonst bleiben Token-/Cache-Zahlen in der UI dauerhaft bei 0, obwohl der
|
|
// Endpoint stream_options.include_usage längst unterstützt.
|
|
func TestDefaultCaps_UnknownModelStillReportsUsage(t *testing.T) {
|
|
caps := DefaultCaps("gpt-5-nano") // absichtlich nicht in der known-Tabelle
|
|
if !caps.UsageInStream {
|
|
t.Error("unknown model should default to UsageInStream=true, not silently disable usage reporting")
|
|
}
|
|
}
|
|
|
|
func TestDefaultCaps_KnownModelUsesTable(t *testing.T) {
|
|
caps := DefaultCaps("gpt-4o")
|
|
if caps.MaxContext != 128000 {
|
|
t.Errorf("MaxContext = %d, want 128000 for a known model", caps.MaxContext)
|
|
}
|
|
}
|
|
|
|
func TestApply_OverridesOnlySetFields(t *testing.T) {
|
|
base := DefaultCaps("gpt-4o")
|
|
disabled := false
|
|
got := Apply(base, CapsOverride{UsageInStream: &disabled})
|
|
|
|
if got.UsageInStream {
|
|
t.Error("explicit override to false must take effect")
|
|
}
|
|
if got.MaxContext != base.MaxContext {
|
|
t.Error("fields not present in the override must stay untouched")
|
|
}
|
|
}
|