package config import ( "testing" pkgtel "scrabble/pkg/telemetry" ) // TestLoadTelemetryDefaults verifies the gateway telemetry defaults: the // "scrabble-gateway" service name and both exporters off. func TestLoadTelemetryDefaults(t *testing.T) { c, err := Load() if err != nil { t.Fatalf("Load: %v", err) } if c.Telemetry.ServiceName != defaultServiceName { t.Errorf("Telemetry.ServiceName = %q, want %q", c.Telemetry.ServiceName, defaultServiceName) } if c.Telemetry.TracesExporter != pkgtel.ExporterNone || c.Telemetry.MetricsExporter != pkgtel.ExporterNone { t.Errorf("exporters = %q/%q, want none/none", c.Telemetry.TracesExporter, c.Telemetry.MetricsExporter) } } // TestLoadRejectsUnsupportedExporter verifies an exporter outside the supported // set fails validation. func TestLoadRejectsUnsupportedExporter(t *testing.T) { t.Setenv("GATEWAY_OTEL_METRICS_EXPORTER", "prometheus") if _, err := Load(); err == nil { t.Fatal("Load: expected an error for an unsupported exporter, got nil") } } // TestLoadMaxBodyBytes verifies the body-cap default and that a non-positive // override fails validation. func TestLoadMaxBodyBytes(t *testing.T) { c, err := Load() if err != nil { t.Fatalf("Load: %v", err) } if c.MaxBodyBytes != DefaultMaxBodyBytes { t.Errorf("MaxBodyBytes = %d, want %d", c.MaxBodyBytes, DefaultMaxBodyBytes) } t.Setenv("GATEWAY_MAX_BODY_BYTES", "0") if _, err := Load(); err == nil { t.Fatal("Load: expected an error for a non-positive body cap, got nil") } }