Files
orchard/internal/simplename/simplename_test.go
T
Nikolay Edigaryev d59bc7f8a7 Orchard Controller: implement an SSH server that acts as a jump host (#179)
* proxy.Connections(): require io.ReadWriteCloser instead of net.Conn

* Orchard Controller: implement an SSH server that acts as a jump host

* Issue a warning if the name used will be invalid in the future

* Further restrict uppercase characters in names in the future

The rationale is similar to https://github.com/kubernetes/kubernetes/issues/71140.

We won't want to munge the user's input and introduce subtle bugs doing
lowercase comparisons.
2024-06-11 19:32:45 +04:00

38 lines
1.7 KiB
Go

package simplename_test
import (
"github.com/cirruslabs/orchard/internal/simplename"
"github.com/stretchr/testify/require"
"testing"
)
func TestValidate(t *testing.T) {
require.NoError(t, simplename.Validate("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:-_."))
require.NoError(t, simplename.Validate("vm-1"))
require.NoError(t, simplename.Validate("vm_2"))
require.NoError(t, simplename.Validate("host.local"))
require.Error(t, simplename.Validate("vm%"), "special characters")
require.Error(t, simplename.Validate("😐"), "non-ASCII characters")
}
func TestValidateNext(t *testing.T) {
require.NoError(t, simplename.ValidateNext("abcdefghijklmnopqrstuvwxyz-01234567890"))
require.NoError(t, simplename.ValidateNext("vm-1"))
require.NoError(t, simplename.ValidateNext("host-local"))
require.NoError(t, simplename.ValidateNext("x"))
require.Error(t, simplename.ValidateNext("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
"uppercase characters")
require.Error(t, simplename.ValidateNext(".test"), "does not start with an alphanumeric character")
require.Error(t, simplename.ValidateNext("test."), "does not end with an alphanumeric character")
require.Error(t, simplename.ValidateNext("vm:1"), "special characters")
require.Error(t, simplename.ValidateNext("vm_1"), "special characters")
require.Error(t, simplename.ValidateNext("vm.1"), "special characters")
require.Error(t, simplename.ValidateNext("vm%"), "special characters")
require.Error(t, simplename.ValidateNext("😐"), "non-ASCII characters")
require.Error(t, simplename.ValidateNext(""), "empty name")
require.Error(t, simplename.ValidateNext("1234567890123456789012345678901234567890123456789012345678901234"),
"too long")
}