@@ -0,0 +1,31 @@
|
||||
package nodes
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestAgentWebSocketURLPreservesQuery(t *testing.T) {
|
||||
got, err := agentWebSocketURL("https://agent.example/base", "/agent/v1/stacks/demo/terminal?service=web&shell=sh")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := "wss://agent.example/base/agent/v1/stacks/demo/terminal?service=web&shell=sh"
|
||||
if got != want {
|
||||
t.Fatalf("got %q want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateBaseURLRejectsQueryFragmentAndCredentials(t *testing.T) {
|
||||
bad := []string{
|
||||
"https://user:pass@agent.example",
|
||||
"https://agent.example?token=oops",
|
||||
"https://agent.example/#frag",
|
||||
"ftp://agent.example",
|
||||
}
|
||||
for _, u := range bad {
|
||||
if err := validateBaseURL(u); err == nil {
|
||||
t.Fatalf("expected %q to be rejected", u)
|
||||
}
|
||||
}
|
||||
if err := validateBaseURL("https://agent.example/base"); err != nil {
|
||||
t.Fatalf("valid URL rejected: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user