@@ -1167,3 +1167,50 @@ func Test_GetJobLogs_WithContentReturnAndTailLines(t *testing.T) {
1167
1167
assert .Equal (t , "Job logs content retrieved successfully" , response ["message" ])
1168
1168
assert .NotContains (t , response , "logs_url" ) // Should not have URL when returning content
1169
1169
}
1170
+
1171
+ func Test_GetJobLogs_WithContentReturnAndLargeTailLines (t * testing.T ) {
1172
+ logContent := "Line 1\n Line 2\n Line 3"
1173
+ expectedLogContent := "Line 1\n Line 2\n Line 3"
1174
+
1175
+ testServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , _ * http.Request ) {
1176
+ w .WriteHeader (http .StatusOK )
1177
+ _ , _ = w .Write ([]byte (logContent ))
1178
+ }))
1179
+ defer testServer .Close ()
1180
+
1181
+ mockedClient := mock .NewMockedHTTPClient (
1182
+ mock .WithRequestMatchHandler (
1183
+ mock .GetReposActionsJobsLogsByOwnerByRepoByJobId ,
1184
+ http .HandlerFunc (func (w http.ResponseWriter , _ * http.Request ) {
1185
+ w .Header ().Set ("Location" , testServer .URL )
1186
+ w .WriteHeader (http .StatusFound )
1187
+ }),
1188
+ ),
1189
+ )
1190
+
1191
+ client := github .NewClient (mockedClient )
1192
+ _ , handler := GetJobLogs (stubGetClientFn (client ), translations .NullTranslationHelper )
1193
+
1194
+ request := createMCPRequest (map [string ]any {
1195
+ "owner" : "owner" ,
1196
+ "repo" : "repo" ,
1197
+ "job_id" : float64 (123 ),
1198
+ "return_content" : true ,
1199
+ "tail_lines" : float64 (100 ),
1200
+ })
1201
+
1202
+ result , err := handler (context .Background (), request )
1203
+ require .NoError (t , err )
1204
+ require .False (t , result .IsError )
1205
+
1206
+ textContent := getTextResult (t , result )
1207
+ var response map [string ]any
1208
+ err = json .Unmarshal ([]byte (textContent .Text ), & response )
1209
+ require .NoError (t , err )
1210
+
1211
+ assert .Equal (t , float64 (123 ), response ["job_id" ])
1212
+ assert .Equal (t , float64 (3 ), response ["original_length" ])
1213
+ assert .Equal (t , expectedLogContent , response ["logs_content" ])
1214
+ assert .Equal (t , "Job logs content retrieved successfully" , response ["message" ])
1215
+ assert .NotContains (t , response , "logs_url" )
1216
+ }
0 commit comments