1f192eb7d9
- The TestNodeService helper created services with the fixed name "web", and now that name is overridable. - The discovery chain snapshot didn't have prepared query endpoints so the endpoints tests were missing data for prepared queries
149 lines
3.6 KiB
Go
149 lines
3.6 KiB
Go
package structs
|
|
|
|
import (
|
|
"github.com/mitchellh/go-testing-interface"
|
|
)
|
|
|
|
// TestRegisterRequest returns a RegisterRequest for registering a typical service.
|
|
func TestRegisterRequest(t testing.T) *RegisterRequest {
|
|
return &RegisterRequest{
|
|
Datacenter: "dc1",
|
|
Node: "foo",
|
|
Address: "127.0.0.1",
|
|
Service: &NodeService{
|
|
Service: "web",
|
|
Address: "",
|
|
Port: 80,
|
|
},
|
|
}
|
|
}
|
|
|
|
// TestRegisterRequestProxy returns a RegisterRequest for registering a
|
|
// Connect proxy.
|
|
func TestRegisterRequestProxy(t testing.T) *RegisterRequest {
|
|
return &RegisterRequest{
|
|
Datacenter: "dc1",
|
|
Node: "foo",
|
|
Address: "127.0.0.1",
|
|
Service: TestNodeServiceProxy(t),
|
|
}
|
|
}
|
|
|
|
// TestRegisterIngressGateway returns a RegisterRequest for registering an
|
|
// ingress gateway
|
|
func TestRegisterIngressGateway(t testing.T) *RegisterRequest {
|
|
return &RegisterRequest{
|
|
Datacenter: "dc1",
|
|
Node: "foo",
|
|
Address: "127.0.0.1",
|
|
Service: TestNodeServiceIngressGateway(t, ""),
|
|
}
|
|
}
|
|
|
|
// TestNodeService returns a *NodeService representing a valid regular service: "web".
|
|
func TestNodeService(t testing.T) *NodeService {
|
|
return TestNodeServiceWithName(t, "web")
|
|
}
|
|
|
|
func TestNodeServiceWithName(t testing.T, name string) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindTypical,
|
|
Service: name,
|
|
Port: 8080,
|
|
}
|
|
}
|
|
|
|
// TestNodeServiceProxy returns a *NodeService representing a valid
|
|
// Connect proxy.
|
|
func TestNodeServiceProxy(t testing.T) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindConnectProxy,
|
|
Service: "web-proxy",
|
|
Address: "127.0.0.2",
|
|
Port: 2222,
|
|
Proxy: TestConnectProxyConfig(t),
|
|
}
|
|
}
|
|
|
|
func TestNodeServiceExpose(t testing.T) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindConnectProxy,
|
|
Service: "test-svc",
|
|
Address: "localhost",
|
|
Port: 8080,
|
|
Proxy: ConnectProxyConfig{
|
|
DestinationServiceName: "web",
|
|
Expose: ExposeConfig{
|
|
Paths: []ExposePath{
|
|
{
|
|
Path: "/foo",
|
|
LocalPathPort: 8080,
|
|
ListenerPort: 21500,
|
|
},
|
|
{
|
|
Path: "/bar",
|
|
LocalPathPort: 8080,
|
|
ListenerPort: 21501,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
// TestNodeServiceMeshGateway returns a *NodeService representing a valid Mesh Gateway
|
|
func TestNodeServiceMeshGateway(t testing.T) *NodeService {
|
|
return TestNodeServiceMeshGatewayWithAddrs(t,
|
|
"10.1.2.3",
|
|
8443,
|
|
ServiceAddress{Address: "10.1.2.3", Port: 8443},
|
|
ServiceAddress{Address: "198.18.4.5", Port: 443})
|
|
}
|
|
|
|
func TestNodeServiceTerminatingGateway(t testing.T, address string) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindTerminatingGateway,
|
|
Port: 8443,
|
|
Service: "terminating-gateway",
|
|
Address: address,
|
|
}
|
|
}
|
|
|
|
func TestNodeServiceMeshGatewayWithAddrs(t testing.T, address string, port int, lanAddr, wanAddr ServiceAddress) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindMeshGateway,
|
|
Service: "mesh-gateway",
|
|
Address: address,
|
|
Port: port,
|
|
Proxy: ConnectProxyConfig{
|
|
Config: map[string]interface{}{
|
|
"foo": "bar",
|
|
},
|
|
},
|
|
TaggedAddresses: map[string]ServiceAddress{
|
|
TaggedAddressLAN: lanAddr,
|
|
TaggedAddressWAN: wanAddr,
|
|
},
|
|
}
|
|
}
|
|
|
|
func TestNodeServiceIngressGateway(t testing.T, address string) *NodeService {
|
|
return &NodeService{
|
|
Kind: ServiceKindIngressGateway,
|
|
Service: "ingress-gateway",
|
|
Address: address,
|
|
}
|
|
}
|
|
|
|
// TestNodeServiceSidecar returns a *NodeService representing a service
|
|
// registration with a nested Sidecar registration.
|
|
func TestNodeServiceSidecar(t testing.T) *NodeService {
|
|
return &NodeService{
|
|
Service: "web",
|
|
Port: 2222,
|
|
Connect: ServiceConnect{
|
|
SidecarService: &ServiceDefinition{},
|
|
},
|
|
}
|
|
}
|