17830: Adds controller tests exposing the X-Request-Id header propagation bug.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Tue, 20 Jul 2021 20:59:58 +0000 (17:59 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 22 Jul 2021 15:27:14 +0000 (12:27 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

lib/controller/router/router_test.go

index 0330ec4252c9ad3ee8f461faf9ce7508c17bd3fc..0e0edad3178197fc9bdceefa01c22a370767faf7 100644 (file)
@@ -370,6 +370,35 @@ func (s *RouterIntegrationSuite) TestHEAD(c *check.C) {
        c.Check(rr.Code, check.Equals, http.StatusOK)
 }
 
+func (s *RouterIntegrationSuite) TestRequestIDHeader(c *check.C) {
+       token := arvadostest.ActiveTokenV2
+       req := (&testReq{
+               method: "GET",
+               path:   "arvados/v1/collections/" + arvadostest.FooCollection,
+               token:  token,
+       }).Request()
+       rr := httptest.NewRecorder()
+       s.rtr.ServeHTTP(rr, req)
+       c.Check(rr.Code, check.Equals, http.StatusOK)
+       c.Check(rr.Result().Header.Get("X-Request-Id"), check.Matches, "^req-[0-9a-zA-Z]{20}$")
+}
+
+func (s *RouterIntegrationSuite) TestRequestIDHeaderProvidedByClient(c *check.C) {
+       token := arvadostest.ActiveTokenV2
+       req := (&testReq{
+               method: "GET",
+               path:   "arvados/v1/collections/" + arvadostest.FooCollection,
+               token:  token,
+               header: http.Header{
+                       "X-Request-Id": []string{"abcdeG"},
+               },
+       }).Request()
+       rr := httptest.NewRecorder()
+       s.rtr.ServeHTTP(rr, req)
+       c.Check(rr.Code, check.Equals, http.StatusOK)
+       c.Check(rr.Result().Header.Get("X-Request-Id"), check.Equals, "abcdeG")
+}
+
 func (s *RouterIntegrationSuite) TestRouteNotFound(c *check.C) {
        token := arvadostest.ActiveTokenV2
        req := (&testReq{