1package remote
2
3import (
4 "strings"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8)
9
10func TestValidateRemoteName(t *testing.T) {
11 tests := []struct {
12 name string
13 input string
14 wantErr bool
15 }{
16 {"valid simple", "myserver", false},
17 {"valid with dots", "my.server", false},
18 {"valid with dashes", "my-server", false},
19 {"valid with underscore", "my_server", false},
20 {"invalid slash", "my/server", true},
21 {"invalid dotdot", "my..server", true},
22 {"invalid space", "my server", true},
23 {"empty", "", true},
24 {"leading dot", ".server", false},
25 {"trailing dot", "server.", false},
26 {"only dots", "...", true},
27 {"only dashes", "---", false},
28 {"very long name", strings.Repeat("a", 256), false},
29 }
30
31 for _, tt := range tests {
32 t.Run(tt.name, func(t *testing.T) {
33 err := validateRemoteName(tt.input)
34 if tt.wantErr {
35 assert.Error(t, err)
36 } else {
37 assert.NoError(t, err)
38 }
39 })
40 }
41}