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) } }