ScuttleBot
| b895d50… | lmata | 1 | package topology_test |
| b895d50… | lmata | 2 | |
| b895d50… | lmata | 3 | import ( |
| b895d50… | lmata | 4 | "testing" |
| b895d50… | lmata | 5 | |
| b895d50… | lmata | 6 | "github.com/conflicthq/scuttlebot/internal/topology" |
| b895d50… | lmata | 7 | ) |
| b895d50… | lmata | 8 | |
| b895d50… | lmata | 9 | func TestValidateName(t *testing.T) { |
| b895d50… | lmata | 10 | cases := []struct { |
| b895d50… | lmata | 11 | name string |
| b895d50… | lmata | 12 | channel string |
| b895d50… | lmata | 13 | wantErr bool |
| b895d50… | lmata | 14 | }{ |
| b895d50… | lmata | 15 | {"valid fleet", "#fleet", false}, |
| b895d50… | lmata | 16 | {"valid project", "#project.myapp", false}, |
| b895d50… | lmata | 17 | {"valid subtopic", "#project.myapp.tasks.backend", false}, |
| b895d50… | lmata | 18 | {"valid task", "#task.01HX123", false}, |
| b895d50… | lmata | 19 | {"missing prefix", "fleet", true}, |
| b895d50… | lmata | 20 | {"empty after prefix", "#", true}, |
| b895d50… | lmata | 21 | {"contains space", "#my channel", true}, |
| b895d50… | lmata | 22 | } |
| b895d50… | lmata | 23 | |
| b895d50… | lmata | 24 | for _, tc := range cases { |
| b895d50… | lmata | 25 | t.Run(tc.name, func(t *testing.T) { |
| b895d50… | lmata | 26 | err := topology.ValidateName(tc.channel) |
| b895d50… | lmata | 27 | if tc.wantErr && err == nil { |
| b895d50… | lmata | 28 | t.Errorf("ValidateName(%q): expected error, got nil", tc.channel) |
| b895d50… | lmata | 29 | } |
| b895d50… | lmata | 30 | if !tc.wantErr && err != nil { |
| b895d50… | lmata | 31 | t.Errorf("ValidateName(%q): unexpected error: %v", tc.channel, err) |
| b895d50… | lmata | 32 | } |
| b895d50… | lmata | 33 | }) |
| b895d50… | lmata | 34 | } |
| b895d50… | lmata | 35 | } |