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", () => {