mirror of
https://github.com/cirruslabs/orchard.git
synced 2026-10-03 05:21:30 +02:00
* 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.
38 lines
1.7 KiB
Go
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")
|
|
}
|