func (h *gorouterHandler) ServeHTTP(res http.ResponseWriter, req *http.Request) { // The X-Vcap-Request-Id must be set before the request is passed into the // dropsonde InstrumentedHandler router_http.SetVcapRequestIdHeader(req, h.logger) h.handler.ServeHTTP(res, req) }
const b3_id_regex = `^[[:xdigit:]]{16}$` var _ = Describe("Headers", func() { Describe("SetVcapRequestIdHeader", func() { var ( logger lager.Logger req *http.Request ) BeforeEach(func() { logger = lagertest.NewTestLogger("headers-test") var err error req, err = http.NewRequest("GET", "test.endpoint", nil) Expect(err).ToNot(HaveOccurred()) }) JustBeforeEach(func() { commonhttp.SetVcapRequestIdHeader(req, logger) }) Context("when X-Vcap-Request-Id is not set", func() { It("sets the X-Vcap-Request-Id header", func() { reqID := req.Header.Get(commonhttp.VcapRequestIdHeader) Expect(reqID).ToNot(BeEmpty()) Expect(reqID).To(MatchRegexp(uuid_regex)) }) It("logs the header", func() { reqID := req.Header.Get(commonhttp.VcapRequestIdHeader) Expect(logger).To(gbytes.Say("vcap-request-id-header-set")) Expect(logger).To(gbytes.Say(reqID)) })