mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 11:30:15 +00:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/ai"
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/config"
|
|
)
|
|
|
|
func TestHandleGetIntelligence_PatrolUnavailable(t *testing.T) {
|
|
persistence := config.NewConfigPersistence(t.TempDir())
|
|
handler := &AISettingsHandler{
|
|
legacyAIService: ai.NewService(persistence, nil),
|
|
}
|
|
|
|
req := httptest.NewRequest(http.MethodGet, "/api/ai/intelligence", nil)
|
|
rr := httptest.NewRecorder()
|
|
|
|
handler.HandleGetIntelligence(rr, req)
|
|
if rr.Code != http.StatusServiceUnavailable {
|
|
t.Fatalf("status = %d, want 503", rr.Code)
|
|
}
|
|
|
|
var payload map[string]interface{}
|
|
if err := json.Unmarshal(rr.Body.Bytes(), &payload); err != nil {
|
|
t.Fatalf("failed to decode response: %v", err)
|
|
}
|
|
if payload["error"] != "Pulse Patrol service not available" {
|
|
t.Fatalf("error = %v, want Pulse Patrol service not available", payload["error"])
|
|
}
|
|
}
|
|
|
|
func TestHandlePatrolStream_PatrolUnavailable(t *testing.T) {
|
|
persistence := config.NewConfigPersistence(t.TempDir())
|
|
handler := &AISettingsHandler{
|
|
legacyAIService: ai.NewService(persistence, nil),
|
|
}
|
|
|
|
req := httptest.NewRequest(http.MethodGet, "/api/ai/patrol/stream", nil)
|
|
rr := httptest.NewRecorder()
|
|
|
|
handler.HandlePatrolStream(rr, req)
|
|
if rr.Code != http.StatusServiceUnavailable {
|
|
t.Fatalf("status = %d, want 503", rr.Code)
|
|
}
|
|
}
|