import { describe, expect, it } from "vitest"; import { profileLinkTarget } from "#lib/components/profile/profileLinks.ts"; describe("profileLinkTarget", () => { it("labels web links by host", () => { expect(profileLinkTarget("https://ops.sub.example.co.uk/about?x=1")).toEqual({ href: "https://ops.sub.example.co.uk/about?x=1", label: "ops.sub.example.co.uk", external: true }); }); it("opens account links on tangled", () => { expect(profileLinkTarget("at://did:plc:abc")).toEqual({ href: "/did:plc:abc", label: "did:plc:abc", external: false }); expect(profileLinkTarget("did:plc:abc")?.href).toBe("/did:plc:abc"); }); it("opens record links in an atproto browser", () => { expect(profileLinkTarget("at://did:plc:abc/app.bsky.feed.post/3kabc")).toEqual({ href: "https://pdsls.dev/at://did:plc:abc/app.bsky.feed.post/3kabc", label: "did:plc:abc/app.bsky.feed.post/3kabc", external: true }); }); it("refuses schemes that cannot be followed safely", () => { expect(profileLinkTarget("javascript:alert(1)")).toBeNull(); expect(profileLinkTarget("ftp://files.example.com")).toBeNull(); expect(profileLinkTarget("settings")).toBeNull(); }); });