Skip to content

Commit 2d354fa

Browse files
committed
Add test
1 parent 031c7ee commit 2d354fa

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

pkg/github/context_tools_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,66 @@ func Test_GetMe(t *testing.T) {
139139
}
140140
}
141141

142+
func Test_GetMe_IFC_InsidersMode(t *testing.T) {
143+
t.Parallel()
144+
145+
serverTool := GetMe(translations.NullTranslationHelper)
146+
147+
mockUser := &github.User{
148+
Login: github.Ptr("testuser"),
149+
HTMLURL: github.Ptr("https://github.com/testuser"),
150+
CreatedAt: &github.Timestamp{Time: time.Now()},
151+
}
152+
mockedHTTPClient := MockHTTPClientWithHandlers(map[string]http.HandlerFunc{
153+
GetUser: mockResponse(t, http.StatusOK, mockUser),
154+
})
155+
156+
t.Run("insiders mode disabled omits ifc label from result meta", func(t *testing.T) {
157+
deps := BaseDeps{
158+
Client: github.NewClient(mockedHTTPClient),
159+
Flags: FeatureFlags{InsidersMode: false},
160+
}
161+
handler := serverTool.Handler(deps)
162+
163+
request := createMCPRequest(map[string]any{})
164+
result, err := handler(ContextWithDeps(context.Background(), deps), &request)
165+
require.NoError(t, err)
166+
require.False(t, result.IsError)
167+
168+
assert.Nil(t, result.Meta, "result meta should be nil when insiders mode is disabled")
169+
})
170+
171+
t.Run("insiders mode enabled includes ifc label in result meta", func(t *testing.T) {
172+
deps := BaseDeps{
173+
Client: github.NewClient(mockedHTTPClient),
174+
Flags: FeatureFlags{InsidersMode: true},
175+
}
176+
handler := serverTool.Handler(deps)
177+
178+
request := createMCPRequest(map[string]any{})
179+
result, err := handler(ContextWithDeps(context.Background(), deps), &request)
180+
require.NoError(t, err)
181+
require.False(t, result.IsError)
182+
183+
require.NotNil(t, result.Meta, "result meta should be set when insiders mode is enabled")
184+
ifcLabel, ok := result.Meta["ifc"]
185+
require.True(t, ok, "result meta should contain ifc key")
186+
187+
ifcJSON, err := json.Marshal(ifcLabel)
188+
require.NoError(t, err)
189+
190+
var ifcMap map[string]any
191+
err = json.Unmarshal(ifcJSON, &ifcMap)
192+
require.NoError(t, err)
193+
194+
assert.Equal(t, "high", ifcMap["integrity"])
195+
confList, ok := ifcMap["confidentiality"].([]any)
196+
require.True(t, ok, "confidentiality should be a list")
197+
require.Len(t, confList, 1)
198+
assert.Equal(t, "public", confList[0])
199+
})
200+
}
201+
142202
func Test_GetTeams(t *testing.T) {
143203
t.Parallel()
144204

0 commit comments

Comments
 (0)