MCPcopy
hub / github.com/github/github-mcp-server / TestBearerAuthTransport

Function TestBearerAuthTransport

pkg/http/transport/bearer_test.go:16–75  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

14)
15
16func TestBearerAuthTransport(t *testing.T) {
17 t.Parallel()
18
19 tests := []struct {
20 name string
21 token string
22 tokenProvider func() string
23 wantAuth string
24 }{
25 {
26 name: "static token",
27 token: "static-token",
28 wantAuth: "Bearer static-token",
29 },
30 {
31 name: "token provider takes precedence over static token",
32 token: "static-token",
33 tokenProvider: func() string { return "provided-token" },
34 wantAuth: "Bearer provided-token",
35 },
36 {
37 name: "token provider with empty static token",
38 tokenProvider: func() string { return "provided-token" },
39 wantAuth: "Bearer provided-token",
40 },
41 {
42 name: "token provider may return empty before authorization",
43 tokenProvider: func() string { return "" },
44 wantAuth: "",
45 },
46 }
47
48 for _, tc := range tests {
49 t.Run(tc.name, func(t *testing.T) {
50 t.Parallel()
51
52 var gotAuth string
53 server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
54 gotAuth = r.Header.Get(headers.AuthorizationHeader)
55 w.WriteHeader(http.StatusOK)
56 }))
57 defer server.Close()
58
59 rt := &BearerAuthTransport{
60 Transport: http.DefaultTransport,
61 Token: tc.token,
62 TokenProvider: tc.tokenProvider,
63 }
64
65 req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, server.URL, nil)
66 require.NoError(t, err)
67
68 resp, err := rt.RoundTrip(req)
69 require.NoError(t, err)
70 defer resp.Body.Close()
71
72 assert.Equal(t, tc.wantAuth, gotAuth)
73 })

Callers

nothing calls this directly

Calls 3

RoundTripMethod · 0.95
WriteHeaderMethod · 0.80
CloseMethod · 0.80

Tested by

no test coverage detected