| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- //go:build unit
- package service
- import "testing"
- func TestApplyMonitorUpdate_ProviderOnlySwitchToGrokUsesDefaultModel(t *testing.T) {
- grok := MonitorProviderGrok
- existing := &ChannelMonitor{
- Provider: MonitorProviderOpenAI,
- APIMode: MonitorAPIModeResponses,
- Endpoint: "https://api.openai.com/v1",
- PrimaryModel: "gpt-5",
- IntervalSeconds: 60,
- }
- err := applyMonitorUpdate(existing, ChannelMonitorUpdateParams{Provider: &grok})
- if err != nil {
- t.Fatalf("provider-only switch to Grok failed: %v", err)
- }
- if existing.PrimaryModel != MonitorDefaultGrokModel {
- t.Fatalf("expected Grok default model %q, got %q", MonitorDefaultGrokModel, existing.PrimaryModel)
- }
- if existing.APIMode != MonitorAPIModeChatCompletions {
- t.Fatalf("expected Grok API mode %q, got %q", MonitorAPIModeChatCompletions, existing.APIMode)
- }
- }
- func TestApplyMonitorUpdate_SwitchToGrokPreservesExplicitModel(t *testing.T) {
- grok := MonitorProviderGrok
- explicitModel := "grok-4.3"
- existing := &ChannelMonitor{
- Provider: MonitorProviderOpenAI,
- APIMode: MonitorAPIModeChatCompletions,
- Endpoint: "https://api.openai.com/v1",
- PrimaryModel: "gpt-5",
- IntervalSeconds: 60,
- }
- err := applyMonitorUpdate(existing, ChannelMonitorUpdateParams{
- Provider: &grok,
- PrimaryModel: &explicitModel,
- })
- if err != nil {
- t.Fatalf("switch to Grok with explicit model failed: %v", err)
- }
- if existing.PrimaryModel != explicitModel {
- t.Fatalf("expected explicit model %q, got %q", explicitModel, existing.PrimaryModel)
- }
- }
- func TestApplyMonitorUpdate_SameGrokProviderDoesNotResetExistingModel(t *testing.T) {
- grok := MonitorProviderGrok
- existing := &ChannelMonitor{
- Provider: MonitorProviderGrok,
- APIMode: MonitorAPIModeChatCompletions,
- Endpoint: "https://api.x.ai",
- PrimaryModel: "grok-4.3",
- IntervalSeconds: 60,
- }
- err := applyMonitorUpdate(existing, ChannelMonitorUpdateParams{Provider: &grok})
- if err != nil {
- t.Fatalf("same-provider Grok update failed: %v", err)
- }
- if existing.PrimaryModel != "grok-4.3" {
- t.Fatalf("same-provider update reset existing model to %q", existing.PrimaryModel)
- }
- }
- func TestApplyMonitorUpdate_SwitchToGrokRejectsResponsesMode(t *testing.T) {
- grok := MonitorProviderGrok
- responses := MonitorAPIModeResponses
- existing := &ChannelMonitor{
- Provider: MonitorProviderOpenAI,
- APIMode: MonitorAPIModeChatCompletions,
- PrimaryModel: "gpt-5",
- IntervalSeconds: 60,
- }
- err := applyMonitorUpdate(existing, ChannelMonitorUpdateParams{
- Provider: &grok,
- APIMode: &responses,
- })
- if err == nil {
- t.Fatal("Grok responses mode should remain unsupported")
- }
- }
|