49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
|
|
package webrtc
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestConfig_Defaults(t *testing.T) {
|
||
|
|
c := DefaultConfig()
|
||
|
|
if !c.Enabled {
|
||
|
|
t.Error("default Enabled should be true")
|
||
|
|
}
|
||
|
|
if c.WHEPListen != ":8787" {
|
||
|
|
t.Errorf("default WHEPListen = %q, want :8787", c.WHEPListen)
|
||
|
|
}
|
||
|
|
if c.UDPPortRange.Low != 10000 || c.UDPPortRange.High != 10100 {
|
||
|
|
t.Errorf("default UDPPortRange = %v, want 10000-10100", c.UDPPortRange)
|
||
|
|
}
|
||
|
|
if c.MaxPeersTotal != 32 {
|
||
|
|
t.Errorf("default MaxPeersTotal = %d, want 32", c.MaxPeersTotal)
|
||
|
|
}
|
||
|
|
if len(c.ICEServers) == 0 {
|
||
|
|
t.Error("default ICEServers should have at least one STUN entry")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestConfig_Validate(t *testing.T) {
|
||
|
|
tests := []struct {
|
||
|
|
name string
|
||
|
|
mutate func(*Config)
|
||
|
|
wantErr bool
|
||
|
|
}{
|
||
|
|
{"defaults are valid", func(c *Config) {}, false},
|
||
|
|
{"empty listen", func(c *Config) { c.WHEPListen = "" }, true},
|
||
|
|
{"inverted port range", func(c *Config) { c.UDPPortRange.Low = 20000; c.UDPPortRange.High = 10000 }, true},
|
||
|
|
{"zero max peers", func(c *Config) { c.MaxPeersTotal = 0 }, true},
|
||
|
|
{"negative max peers", func(c *Config) { c.MaxPeersTotal = -1 }, true},
|
||
|
|
}
|
||
|
|
for _, tt := range tests {
|
||
|
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
|
c := DefaultConfig()
|
||
|
|
tt.mutate(&c)
|
||
|
|
err := c.Validate()
|
||
|
|
if (err != nil) != tt.wantErr {
|
||
|
|
t.Errorf("Validate() err = %v, wantErr %v", err, tt.wantErr)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|