// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package extensioncommon import ( "testing" "github.com/hashicorp/consul/api" "github.com/stretchr/testify/require" ) func makeTestRuntimeConfig() RuntimeConfig { sn := api.CompoundServiceName{Name: "api"} rc := RuntimeConfig{ Kind: api.ServiceKindConnectProxy, ServiceName: sn, Upstreams: map[api.CompoundServiceName]*UpstreamData{ sn: { EnvoyID: "eid", OutgoingProxyKind: api.ServiceKindTerminatingGateway, SNI: map[string]struct{}{ "sni1": {}, "sni2": {}, }, }, }, } return rc } func TestRuntimeConfig_IsUpstream(t *testing.T) { rc := makeTestRuntimeConfig() require.True(t, rc.IsUpstream()) delete(rc.Upstreams, rc.ServiceName) require.False(t, rc.IsUpstream()) } func TestRuntimeConfig_MatchesUpstreamServiceSNI(t *testing.T) { rc := makeTestRuntimeConfig() require.True(t, rc.MatchesUpstreamServiceSNI("sni1")) require.True(t, rc.MatchesUpstreamServiceSNI("sni2")) require.False(t, rc.MatchesUpstreamServiceSNI("sni3")) } func TestRuntimeConfig_EnvoyID(t *testing.T) { rc := makeTestRuntimeConfig() require.Equal(t, "eid", rc.EnvoyID()) } func TestRuntimeConfig_OutgoingProxyKind(t *testing.T) { rc := makeTestRuntimeConfig() require.Equal(t, api.ServiceKindTerminatingGateway, rc.OutgoingProxyKind()) }