@@ -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+
142202func Test_GetTeams (t * testing.T ) {
143203 t .Parallel ()
144204
0 commit comments