package relay_test // This file, alone in the package, is relay_test (an EXTERNAL test // package) rather than relay: it asserts that BuildConfig's value is safe // to materialize into an EnvironmentFile, which means importing // internal/appconfig for ValidVarValue — and internal/appconfig imports // internal/relay for real since Task 12 (configack.go, relaySuffixesFromRelayVar). // An INTERNAL relay test importing appconfig would close relay -> // appconfig -> relay, which go vet refuses; this package, built separately // from both, does not. import ( "crypto/sha256" "testing" "github.com/carlosframework/platform/internal/appconfig" "github.com/carlosframework/platform/internal/relay" ) func TestBuildConfigValueIsEnvSafe(t *testing.T) { m := sha256.Sum256([]byte("carlos-relay-test-master")) r := &relay.Record{Enabled: true, Incarnation: "0123456789abcdef", Regions: []string{"eu-west-1"}} urls := func(region string) []string { h := "relay." + region + ".oncarlos.com:3478" return []string{"stun:" + h, "turn:" + h + "?transport=udp", "turn:" + h + "?transport=tcp"} } val, _, err := relay.BuildConfig("abc", "meet", r, []relay.RegionMaster{{Region: "eu-west-1", Kid: "k1", Master: m[:]}}, urls) if err != nil { t.Fatal(err) } if err := appconfig.ValidVarValue(val); err != nil { t.Fatalf("BuildConfig's value is not env-safe: %v", err) } }