From 33e5783bb16bcb02b335ab1a1fb561a8414207cb Mon Sep 17 00:00:00 2001 From: Grace Kind Date: Tue, 21 Apr 2026 14:29:09 -0500 Subject: [PATCH] Don't show feed creator link for Following feed errors --- package.json | 2 +- src/js/views/home.view.js | 6 +++- tests/e2e/specs/views/home.view.test.js | 37 ++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9b43e2df..af6061c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "impro", - "version": "0.10.23", + "version": "0.10.24", "type": "module", "scripts": { "start": "rm -rf build && NODE_ENV=development eleventy --serve", diff --git a/src/js/views/home.view.js b/src/js/views/home.view.js index 34322eca..eb4b4d69 100644 --- a/src/js/views/home.view.js +++ b/src/js/views/home.view.js @@ -177,7 +177,11 @@ class HomeView extends View {
An issue occurred when contacting the feed server.
Please let the feed owner know about this issue.
- View profile + ${feedGenerator.creator + ? html`View profile` + : ""}
`; } diff --git a/tests/e2e/specs/views/home.view.test.js b/tests/e2e/specs/views/home.view.test.js index c84aebec..0f9045a0 100644 --- a/tests/e2e/specs/views/home.view.test.js +++ b/tests/e2e/specs/views/home.view.test.js @@ -352,10 +352,45 @@ test.describe("Home view", () => { const view = page.locator("#home-view"); await view.locator(".tab-bar-button", { hasText: "Broken Feed" }).click(); - await expect(view.locator(".error-state")).toContainText( + const errorState = view.locator(".error-state"); + await expect(errorState).toContainText( "An issue occurred when contacting the feed server.", { timeout: 10000 }, ); + await expect( + errorState.locator("a", { hasText: "View profile" }), + ).toHaveAttribute("href", "/profile/creator1.bsky.social"); + }); + + test("should render error state for Following feed without a creator profile link", async ({ + page, + }) => { + const mockServer = new MockServer(); + await mockServer.setup(page); + + await page.route("**/xrpc/app.bsky.feed.getTimeline*", (route) => + route.fulfill({ + status: 500, + contentType: "application/json", + body: JSON.stringify({ error: "InternalServerError" }), + }), + ); + + await login(page); + await page.goto("/"); + + const view = page.locator("#home-view"); + await expect(view.locator(".tab-bar-button.active")).toContainText( + "Following", + { timeout: 10000 }, + ); + + const errorState = view.locator(".error-state"); + await expect(errorState).toContainText( + "An issue occurred when contacting the feed server.", + { timeout: 10000 }, + ); + await expect(errorState.locator("a")).toHaveCount(0); }); test.describe("Logged-out behavior", () => { -- 2.51.2