43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package cmd
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestServiceConfigRequiresMasterKey(t *testing.T) {
|
|
_, err := serviceConfigFromEnvironment(func(string) (string, bool) { return "", false })
|
|
if err == nil || !strings.Contains(err.Error(), "CHORUS_MASTER_KEY") {
|
|
t.Fatalf("missing master key error = %v", err)
|
|
}
|
|
}
|
|
|
|
func TestServiceConfigKeepsConnectivityDisabledWithoutExplicitAuthorization(t *testing.T) {
|
|
configured, err := serviceConfigFromEnvironment(testEnvironment(map[string]string{
|
|
"CHORUS_MASTER_KEY": "0123456789abcdef0123456789abcdef",
|
|
}))
|
|
if err != nil {
|
|
t.Fatalf("configure disabled connectivity: %v", err)
|
|
}
|
|
if configured.config.AllowConnectivityChecks || configured.config.Probe != nil {
|
|
t.Fatal("connectivity probe must not be created without explicit authorization")
|
|
}
|
|
}
|
|
|
|
func TestServiceConfigRequiresAllExplicitConnectivityLimits(t *testing.T) {
|
|
_, err := serviceConfigFromEnvironment(testEnvironment(map[string]string{
|
|
"CHORUS_MASTER_KEY": "0123456789abcdef0123456789abcdef",
|
|
"CHORUS_ADMIN_ALLOW_CONNECTIVITY_PROBES": "1",
|
|
}))
|
|
if err == nil || !strings.Contains(err.Error(), "CHORUS_ADMIN_CONNECTIVITY_COOLDOWN_SECONDS") {
|
|
t.Fatalf("missing cooldown error = %v", err)
|
|
}
|
|
}
|
|
|
|
func testEnvironment(values map[string]string) func(string) (string, bool) {
|
|
return func(key string) (string, bool) {
|
|
value, ok := values[key]
|
|
return value, ok
|
|
}
|
|
}
|