diff --git a/e2e/specs/profile-settings.spec.ts b/e2e/specs/profile-settings.spec.ts
index 26790b73a..2e6a06149 100644
--- a/e2e/specs/profile-settings.spec.ts
+++ b/e2e/specs/profile-settings.spec.ts
@@ -279,9 +279,9 @@ flow("the picker goes away once six repositories are pinned")
const sideBySide = async (ctx: Ctx) => {
const bio = await testid("formDescription").locate(ctx.page, ctx).boundingBox();
- const location = await testid("formLocation").locate(ctx.page, ctx).boundingBox();
- if (!bio || !location) throw new Error("the bio or the location field is not on the page");
- return { bio, location };
+ const link = await linkRow(0).locate(ctx.page, ctx).boundingBox();
+ if (!bio || !link) throw new Error("the bio or the first link is not on the page");
+ return { bio, link };
};
const sizeOfWindow = (width: number, height: number) => async (ctx: Ctx) => {
@@ -289,27 +289,27 @@ const sizeOfWindow = (width: number, height: number) => async (ctx: Ctx) => {
};
flow(
- "the profile settings put the bio beside the other fields on a wide window and stack them on a narrow one"
+ "the profile settings put the bio beside the links on a wide window and stack them on a narrow one"
)
.actor("owner")
.open(profileSettings)
.sees(testid("formDescription"))
.step("a wide window", sizeOfWindow(1200, 900))
- .step("the bio sits left of the location and the links", async (ctx) => {
+ .step("the bio sits left of the links", async (ctx) => {
await expect
.poll(async () => {
- const { bio, location } = await sideBySide(ctx);
- return bio.x + bio.width <= location.x;
+ const { bio, link } = await sideBySide(ctx);
+ return bio.x + bio.width <= link.x;
})
.toBe(true);
})
.step("a narrow window", sizeOfWindow(390, 900))
- .step("the location and the links are under the bio", async (ctx) => {
+ .step("the links are under the bio", async (ctx) => {
await expect
.poll(async () => {
- const { bio, location } = await sideBySide(ctx);
- return location.y >= bio.y + bio.height;
+ const { bio, link } = await sideBySide(ctx);
+ return link.y >= bio.y + bio.height;
})
.toBe(true);
});
diff --git a/web/src/lib/components/settings/ProfileSettingsForm.stories.svelte b/web/src/lib/components/settings/ProfileSettingsForm.stories.svelte
index c536d66c5..0f231481a 100644
--- a/web/src/lib/components/settings/ProfileSettingsForm.stories.svelte
+++ b/web/src/lib/components/settings/ProfileSettingsForm.stories.svelte
@@ -3,6 +3,11 @@
import { expect, waitFor, within } from "storybook/test";
import type { ProfileRecord } from "#lib/api/records.ts";
import ProfileSettingsForm from "#lib/components/settings/ProfileSettingsForm.svelte";
+ import SettingsPanel from "#lib/components/settings/SettingsPanel.svelte";
+ import type { SettingsNavItem } from "#lib/components/settings/SettingsNav.svelte";
+ import User from "$icon/user-round";
+ import Key from "$icon/key";
+ import Mail from "$icon/mail";
const identity = { did: "did:plc:alice", handle: "alice.test" };
const pds = "https://tranquil.example";
@@ -34,6 +39,12 @@
pinnedRepositories: ["did:plc:alpha", legacyUri as never, "did:plc:bravo"]
};
+ const navItems: SettingsNavItem[] = [
+ { id: "profile", label: "Profile", href: "/settings", icon: User },
+ { id: "keys", label: "Keys", href: "/settings/keys", icon: Key },
+ { id: "emails", label: "Emails", href: "/settings/emails", icon: Mail }
+ ];
+
const installFetchMock = () => {
const original = window.fetch;
window.fetch = async (input, init) => {
@@ -113,3 +124,15 @@
await expect(canvas.getByText(/Nothing pinned/)).toBeVisible();
}}
/>
+
+