From ca23e43e0e95014ddd5f8d5e02e1118f5e2978f5 Mon Sep 17 00:00:00 2001 From: Joe Mou Date: Wed, 12 Aug 2026 01:38:24 -0400 Subject: Handle blobs GitHub cannot preview Binary files with no preview (a .ttf, say) have no rawLines, no colorizedLines and no richText, so the blob view's final branch threw on a null textLines and the page 500ed. Offer the raw file instead. Co-Authored-By: Claude Opus 5 --- src/scraper.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/scraper.test.ts') diff --git a/src/scraper.test.ts b/src/scraper.test.ts index 24fdfc0..836235e 100644 --- a/src/scraper.test.ts +++ b/src/scraper.test.ts @@ -332,6 +332,24 @@ describe("GitHub scraper", () => { assert.strictEqual(data.htmlLines, null); assert.strictEqual(data.htmlContent, null); }); + + // A binary file GitHub has no preview for: no content of any kind, and the + // path exercises escaping of a space. + it("should support an unpreviewable binary file", async () => { + const data = await getGitHubBlob("justrajdeep", "fonts", "master", "Times New Roman.ttf"); + + assert.strictEqual(data.repo.owner, "justrajdeep"); + assert.strictEqual(data.repo.name, "fonts"); + assert.strictEqual(data.branch, "master"); + assert.strictEqual(data.path, "Times New Roman.ttf"); + + assert.strictEqual(data.size, "815 KB"); + assert.strictEqual(data.language, null); + assert.strictEqual(data.image, false); + assert.strictEqual(data.textLines, null); + assert.strictEqual(data.htmlLines, null); + assert.strictEqual(data.htmlContent, null); + }); }); describe("owner pages", () => { -- cgit v1.3.1