diff --git a/cmd/rpc/client.go b/cmd/rpc/client.go index ffb397f259..7e76f0d9ad 100644 --- a/cmd/rpc/client.go +++ b/cmd/rpc/client.go @@ -1112,7 +1112,7 @@ func (c *Client) heightIdAndPointsRequest(routeName string, height, id uint64, p func (c *Client) url(routeName, param string, admin ...bool) string { // if an admin call - if admin != nil && admin[0] { + if len(admin) > 0 && admin[0] { return c.adminRpcUrl + routePaths[routeName].Path + param } // if non admin call diff --git a/cmd/rpc/client_test.go b/cmd/rpc/client_test.go new file mode 100644 index 0000000000..d6be3131a2 --- /dev/null +++ b/cmd/rpc/client_test.go @@ -0,0 +1,24 @@ +package rpc + +import "testing" + +func TestClientURLEmptyAdminFlag(t *testing.T) { + client := NewClient("http://query", "http://admin") + emptyAdmin := []bool{} + + got := client.url(LogsRouteName, "", emptyAdmin...) + want := "http://query" + routePaths[LogsRouteName].Path + if got != want { + t.Fatalf("url with empty admin flag = %q, want %q", got, want) + } +} + +func TestClientURLAdminFlag(t *testing.T) { + client := NewClient("http://query", "http://admin") + + got := client.url(LogsRouteName, "", true) + want := "http://admin" + routePaths[LogsRouteName].Path + if got != want { + t.Fatalf("url with admin flag = %q, want %q", got, want) + } +}