open-consul/agent/consul/wanfed/wanfed_test.go

47 lines
1.0 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package wanfed
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestSplitNodeName(t *testing.T) {
type testcase struct {
nodeName string
expectShortName string
expectDC string
expectErr bool
}
cases := []testcase{
// bad
{nodeName: "", expectErr: true},
{nodeName: "foo", expectErr: true},
{nodeName: "foo.bar.baz", expectErr: true},
// good
{nodeName: "foo.bar", expectShortName: "foo", expectDC: "bar"},
// weird
{nodeName: ".bar", expectShortName: "", expectDC: "bar"},
}
for _, tc := range cases {
tc := tc
t.Run(tc.nodeName, func(t *testing.T) {
gotShortName, gotDC, gotErr := SplitNodeName(tc.nodeName)
if tc.expectErr {
require.Error(t, gotErr)
require.Empty(t, gotShortName)
require.Empty(t, gotDC)
} else {
require.NoError(t, gotErr)
require.Equal(t, tc.expectShortName, gotShortName)
require.Equal(t, tc.expectDC, gotDC)
}
})
}
}