aboutsummaryrefslogtreecommitdiff
path: root/src/app.test.ts
diff options
context:
space:
mode:
authorJoe Mou <dev@mou.fo>2026-08-12 01:38:24 -0400
committerJoe Mou <dev@mou.fo>2026-08-12 01:42:59 -0400
commitca23e43e0e95014ddd5f8d5e02e1118f5e2978f5 (patch)
tree49a269b88f7f0d11e8102a60468f53252f033c4e /src/app.test.ts
parentf491b436e4506a9a56a6a6c4313f4d41a0f3b890 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'src/app.test.ts')
-rw-r--r--src/app.test.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/app.test.ts b/src/app.test.ts
index 59ed352..94bf205 100644
--- a/src/app.test.ts
+++ b/src/app.test.ts
@@ -92,6 +92,28 @@ describe("sidebar fragment", () => {
});
});
+describe("blob view", () => {
+ const blob = {
+ repo: { owner: "justrajdeep", name: "fonts" },
+ branch: "master",
+ path: "Times New Roman.ttf",
+ language: null,
+ size: "815 KB",
+ image: false,
+ textLines: null,
+ htmlLines: null,
+ htmlContent: null,
+ };
+
+ // GitHub previews neither the text nor the bytes of most binary files.
+ it("should offer the raw file when there is nothing to display", () => {
+ const html = eta.render("blob.eta", blob);
+
+ assert.match(html, /This file cannot be displayed\./);
+ assert.match(html, /href="\/justrajdeep\/fonts\/raw\/master\/Times New Roman.ttf">View raw/);
+ });
+});
+
describe("redirects to GitHub", () => {
// An HTTP redirect would be caught by the extension's declarativeNetRequest
// rules and bounced straight back here.