82 lines
1.6 KiB
Go
82 lines
1.6 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
//go:build !consulent
|
|
// +build !consulent
|
|
|
|
package structs
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestExportedServicesConfigEntry_OSS(t *testing.T) {
|
|
cases := map[string]configEntryTestcase{
|
|
"normalize: noop in oss": {
|
|
entry: &ExportedServicesConfigEntry{
|
|
Name: "default",
|
|
Services: []ExportedService{
|
|
{
|
|
Name: "web",
|
|
Consumers: []ServiceConsumer{
|
|
{
|
|
Peer: "bar",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
expected: &ExportedServicesConfigEntry{
|
|
Name: "default",
|
|
Services: []ExportedService{
|
|
{
|
|
Name: "web",
|
|
Namespace: "",
|
|
Consumers: []ServiceConsumer{
|
|
{
|
|
Peer: "bar",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"validate: empty name": {
|
|
entry: &ExportedServicesConfigEntry{
|
|
Name: "",
|
|
},
|
|
validateErr: `exported-services Name must be "default"`,
|
|
},
|
|
"validate: wildcard name": {
|
|
entry: &ExportedServicesConfigEntry{
|
|
Name: WildcardSpecifier,
|
|
},
|
|
validateErr: `exported-services Name must be "default"`,
|
|
},
|
|
"validate: other name": {
|
|
entry: &ExportedServicesConfigEntry{
|
|
Name: "foo",
|
|
},
|
|
validateErr: `exported-services Name must be "default"`,
|
|
},
|
|
"validate: sameness groups are enterprise only": {
|
|
entry: &ExportedServicesConfigEntry{
|
|
Name: "default",
|
|
Services: []ExportedService{
|
|
{
|
|
Name: "web",
|
|
Consumers: []ServiceConsumer{
|
|
{
|
|
SamenessGroup: "sg",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
validateErr: `Services[0].Consumers[0]: sameness-groups are an enterprise-only feature`,
|
|
},
|
|
}
|
|
|
|
testConfigEntryNormalizeAndValidate(t, cases)
|
|
}
|