| // Copyright IBM Corp. 2014, 2026 | |
| // SPDX-License-Identifier: BUSL-1.1 | |
| package arguments | |
| import "testing" | |
| func TestValidWorkspaceName(t *testing.T) { | |
| cases := map[string]struct { | |
| input string | |
| valid bool | |
| }{ | |
| "foobar": { | |
| input: "foobar", | |
| valid: true, | |
| }, | |
| "valid symbols": { | |
| input: "-._~@:", | |
| valid: true, | |
| }, | |
| "includes space": { | |
| input: "two words", | |
| valid: false, | |
| }, | |
| "empty string": { | |
| input: "", | |
| valid: false, | |
| }, | |
| "path traversal attempt": { | |
| input: "../etc/passwd", | |
| valid: false, // you shall not pass! | |
| }, | |
| } | |
| for tn, tc := range cases { | |
| t.Run(tn, func(t *testing.T) { | |
| valid := ValidWorkspaceName(tc.input) | |
| if valid != tc.valid { | |
| t.Fatalf("unexpected output when processing input %q. Wanted %v got %v", tc.input, tc.valid, valid) | |
| } | |
| }) | |
| } | |
| } |