Skip to content

Commit e927736

Browse files
committed
add pdf retrieval test case
1 parent 807bb92 commit e927736

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

pkg/github/repositories_test.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,51 @@ func Test_GetFileContents(t *testing.T) {
157157
MIMEType: "image/png",
158158
},
159159
},
160+
{
161+
name: "successful PDF file content fetch",
162+
mockedClient: mock.NewMockedHTTPClient(
163+
mock.WithRequestMatchHandler(
164+
mock.GetReposGitRefByOwnerByRepoByRef,
165+
http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
166+
w.WriteHeader(http.StatusOK)
167+
_, _ = w.Write([]byte(`{"ref": "refs/heads/main", "object": {"sha": ""}}`))
168+
}),
169+
),
170+
mock.WithRequestMatchHandler(
171+
mock.GetReposContentsByOwnerByRepoByPath,
172+
http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
173+
w.WriteHeader(http.StatusOK)
174+
fileContent := &github.RepositoryContent{
175+
Name: github.Ptr("document.pdf"),
176+
Path: github.Ptr("document.pdf"),
177+
SHA: github.Ptr("pdf123"),
178+
Type: github.Ptr("file"),
179+
}
180+
contentBytes, _ := json.Marshal(fileContent)
181+
_, _ = w.Write(contentBytes)
182+
}),
183+
),
184+
mock.WithRequestMatchHandler(
185+
raw.GetRawReposContentsByOwnerByRepoByBranchByPath,
186+
http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
187+
w.Header().Set("Content-Type", "application/pdf")
188+
_, _ = w.Write(mockRawContent)
189+
}),
190+
),
191+
),
192+
requestArgs: map[string]interface{}{
193+
"owner": "owner",
194+
"repo": "repo",
195+
"path": "document.pdf",
196+
"ref": "refs/heads/main",
197+
},
198+
expectError: false,
199+
expectedResult: mcp.BlobResourceContents{
200+
URI: "repo://owner/repo/refs/heads/main/contents/document.pdf",
201+
Blob: base64.StdEncoding.EncodeToString(mockRawContent),
202+
MIMEType: "application/pdf",
203+
},
204+
},
160205
{
161206
name: "successful directory content fetch",
162207
mockedClient: mock.NewMockedHTTPClient(

0 commit comments

Comments
 (0)