36 lines
940 B
Go
36 lines
940 B
Go
package config
|
|||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func TestValidateRejectsNonLoopbackByDefault(t *testing.T) {
|
||
|
|
t.Parallel()
|
||
|
|
cfg := Config{
|
||
|
|
HTTPAddress: "0.0.0.0:8080",
|
||
|
|
DatabaseDSN: "file:test.db",
|
||
|
|
MediaMTXURL: "http://127.0.0.1:9997",
|
||
|
|
ReconcileInterval: 1,
|
||
|
|
ProbeInterval: 1,
|
||
|
|
}
|
||
|
|
if err := cfg.Validate(); err == nil {
|
||
|
|
t.Fatal("expected non-loopback bind to be rejected")
|
||
|
|
}
|
||
|
|
cfg.AllowNonLoopback = true
|
||
|
|
if err := cfg.Validate(); err != nil {
|
||
|
|
t.Fatalf("explicit non-loopback opt-in failed: %v", err)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestValidateRejectsCredentialsInMediaMTXURL(t *testing.T) {
|
||
|
|
t.Parallel()
|
||
|
|
cfg := Config{
|
||
|
|
HTTPAddress: "127.0.0.1:8080",
|
||
|
|
DatabaseDSN: "file:test.db",
|
||
|
|
MediaMTXURL: "http://" + "user" + ":" + "redacted" + "@127.0.0.1:9997",
|
||
|
|
ReconcileInterval: 1,
|
||
|
|
ProbeInterval: 1,
|
||
|
|
}
|
||
|
|
if err := cfg.Validate(); err == nil {
|
||
|
|
t.Fatal("expected credentials in MediaMTX URL to be rejected")
|
||
|
|
}
|
||
|
|
}
|