mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-07-09 16:00:59 +00:00
Harden proxy-auth admin role checks, metrics listener exposure, Teams webhook escaping, and dependency lockfiles.
53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package server
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/config"
|
|
)
|
|
|
|
func TestResolveMetricsPortFromEnvPrefersPrefixedOverride(t *testing.T) {
|
|
t.Setenv("PULSE_METRICS_PORT", "0")
|
|
t.Setenv("METRICS_PORT", "9091")
|
|
|
|
if got := ResolveMetricsPortFromEnv(nil, 7655); got != 0 {
|
|
t.Fatalf("ResolveMetricsPortFromEnv() = %d, want 0", got)
|
|
}
|
|
}
|
|
|
|
func TestResolveMetricsPortFromEnvFallsBackOnInvalidValue(t *testing.T) {
|
|
t.Setenv("PULSE_METRICS_PORT", "not-a-port")
|
|
|
|
var stderr bytes.Buffer
|
|
if got := ResolveMetricsPortFromEnv(&stderr, 9091); got != 9091 {
|
|
t.Fatalf("ResolveMetricsPortFromEnv() = %d, want fallback 9091", got)
|
|
}
|
|
if stderr.Len() == 0 {
|
|
t.Fatal("expected invalid metrics port warning")
|
|
}
|
|
}
|
|
|
|
func TestMetricsListenAddressDefaultsToLoopback(t *testing.T) {
|
|
if got := metricsListenAddress(&config.Config{}, 9091); got != "127.0.0.1:9091" {
|
|
t.Fatalf("metricsListenAddress() = %q, want loopback default", got)
|
|
}
|
|
}
|
|
|
|
func TestMetricsListenAddressUsesConfiguredAddress(t *testing.T) {
|
|
cfg := &config.Config{MetricsBindAddress: "192.0.2.10"}
|
|
if got := metricsListenAddress(cfg, 9091); got != "192.0.2.10:9091" {
|
|
t.Fatalf("metricsListenAddress() = %q, want configured address", got)
|
|
}
|
|
}
|
|
|
|
func TestMetricsAddressIsLoopback(t *testing.T) {
|
|
for _, addr := range []string{"127.0.0.1:9091", "[::1]:9091", "localhost:9091"} {
|
|
if !metricsAddressIsLoopback(addr) {
|
|
t.Fatalf("metricsAddressIsLoopback(%q) = false, want true", addr)
|
|
}
|
|
}
|
|
if metricsAddressIsLoopback("0.0.0.0:9091") {
|
|
t.Fatal("metricsAddressIsLoopback(0.0.0.0:9091) = true, want false")
|
|
}
|
|
}
|