MCPcopy Index your code
hub / github.com/github/github-mcp-server / TestSessionPrompterCapabilities

Function TestSessionPrompterCapabilities

internal/ghmcp/oauth_test.go:71–141  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

69}
70
71func TestSessionPrompterCapabilities(t *testing.T) {
72 t.Parallel()
73
74 tests := []struct {
75 name string
76 caps *mcp.ClientCapabilities
77 wantURL bool
78 wantForm bool
79 }{
80 {
81 name: "no elicitation advertised",
82 caps: &mcp.ClientCapabilities{},
83 wantURL: false,
84 wantForm: false,
85 },
86 {
87 name: "url only",
88 caps: &mcp.ClientCapabilities{Elicitation: &mcp.ElicitationCapabilities{URL: &mcp.URLElicitationCapabilities{}}},
89 wantURL: true,
90 wantForm: false,
91 },
92 {
93 name: "form only",
94 caps: &mcp.ClientCapabilities{Elicitation: &mcp.ElicitationCapabilities{Form: &mcp.FormElicitationCapabilities{}}},
95 wantURL: false,
96 wantForm: true,
97 },
98 {
99 name: "url and form",
100 caps: &mcp.ClientCapabilities{Elicitation: &mcp.ElicitationCapabilities{URL: &mcp.URLElicitationCapabilities{}, Form: &mcp.FormElicitationCapabilities{}}},
101 wantURL: true,
102 wantForm: true,
103 },
104 {
105 name: "empty elicitation capability implies form for backward compatibility",
106 caps: &mcp.ClientCapabilities{Elicitation: &mcp.ElicitationCapabilities{}},
107 wantURL: false,
108 wantForm: true,
109 },
110 }
111
112 for _, tc := range tests {
113 t.Run(tc.name, func(t *testing.T) {
114 t.Parallel()
115
116 got := runProbe(t, tc.caps, nil, func(_ context.Context, p *sessionPrompter) string {
117 if p.CanPromptURL() {
118 if p.CanPromptForm() {
119 return "url+form"
120 }
121 return "url"
122 }
123 if p.CanPromptForm() {
124 return "form"
125 }
126 return "none"
127 })
128

Callers

nothing calls this directly

Calls 3

runProbeFunction · 0.85
CanPromptURLMethod · 0.65
CanPromptFormMethod · 0.65

Tested by

no test coverage detected