32 lines
861 B
Go
32 lines
861 B
Go
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)
|
|
}
|
|
}
|