Pulse/internal/monitoring/monitor_temperature_toggle_test.go
rcourtman d52ac6d8b5 Fix CSRF token validation and improve token management
- Add Access-Control-Expose-Headers to allow frontend to read X-CSRF-Token response header
- Implement proactive CSRF token issuance on GET requests when session exists but CSRF cookie is missing
- Ensures frontend always has valid CSRF token before making POST requests
- Fixes 403 Forbidden errors when toggling system settings

This resolves CSRF validation failures that occurred when CSRF tokens expired or were missing while valid sessions existed.
2025-11-05 09:23:44 +00:00

43 lines
1.2 KiB
Go

package monitoring
import (
"path/filepath"
"testing"
"github.com/rcourtman/pulse-go-rewrite/internal/config"
)
func TestMonitorTemperatureCollectorToggle(t *testing.T) {
t.Parallel()
cfg := &config.Config{TemperatureMonitoringEnabled: false}
service := newTemperatureService(false, "root", filepath.Join(t.TempDir(), "id_ed25519_sensors"))
m := &Monitor{
config: cfg,
tempService: service,
}
if provider := m.temperatureService(); provider == nil {
t.Fatalf("expected temperature service to be present")
} else if provider.Enabled() {
t.Fatalf("expected service to start disabled")
}
m.EnableTemperatureMonitoring()
if !cfg.TemperatureMonitoringEnabled {
t.Fatalf("expected config flag to be true after enabling")
}
if provider := m.temperatureService(); provider == nil || !provider.Enabled() {
t.Fatalf("expected service to be enabled after EnableTemperatureMonitoring")
}
m.DisableTemperatureMonitoring()
if cfg.TemperatureMonitoringEnabled {
t.Fatalf("expected config flag to be false after disabling")
}
if provider := m.temperatureService(); provider == nil || provider.Enabled() {
t.Fatalf("expected service to be disabled after DisableTemperatureMonitoring")
}
}