X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/bc25d5adc43cf10b6df7dc28556aba083f34444a..135bada0fe08de2b678ede684d43a155c4351ed3:/sdk/go/arvados/client_test.go diff --git a/sdk/go/arvados/client_test.go b/sdk/go/arvados/client_test.go index b7c60fbf8d..a196003b8f 100644 --- a/sdk/go/arvados/client_test.go +++ b/sdk/go/arvados/client_test.go @@ -170,6 +170,44 @@ func (*clientSuite) TestAnythingToValues(c *check.C) { } } +// select=["uuid"] is added automatically when RequestAndDecode's +// destination argument is nil. +func (*clientSuite) TestAutoSelectUUID(c *check.C) { + var req *http.Request + var err error + server := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + c.Check(r.ParseForm(), check.IsNil) + req = r + w.Write([]byte("{}")) + })) + client := Client{ + APIHost: strings.TrimPrefix(server.URL, "https://"), + AuthToken: "zzz", + Insecure: true, + Timeout: 2 * time.Second, + } + + req = nil + err = client.RequestAndDecode(nil, http.MethodPost, "test", nil, nil) + c.Check(err, check.IsNil) + c.Check(req.FormValue("select"), check.Equals, `["uuid"]`) + + req = nil + err = client.RequestAndDecode(nil, http.MethodGet, "test", nil, nil) + c.Check(err, check.IsNil) + c.Check(req.FormValue("select"), check.Equals, `["uuid"]`) + + req = nil + err = client.RequestAndDecode(nil, http.MethodGet, "test", nil, map[string]interface{}{"select": []string{"blergh"}}) + c.Check(err, check.IsNil) + c.Check(req.FormValue("select"), check.Equals, `["uuid"]`) + + req = nil + err = client.RequestAndDecode(&struct{}{}, http.MethodGet, "test", nil, map[string]interface{}{"select": []string{"blergh"}}) + c.Check(err, check.IsNil) + c.Check(req.FormValue("select"), check.Equals, `["blergh"]`) +} + func (*clientSuite) TestLoadConfig(c *check.C) { oldenv := os.Environ() defer func() {