Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import { describe, expect, it, vi } from "vitest";import { resolveEmailToDid } from "$lib/api/emailDid";
describe("resolveEmailToDid", () => { it("short-circuits on an empty list without fetching", async () => { const fetchFn = vi.fn(); await expect(resolveEmailToDid(fetchFn, [])).resolves.toEqual(new Map()); expect(fetchFn).not.toHaveBeenCalled(); });
it("requests each email as an encoded repeated param", async () => { const fetchFn = vi.fn(async () => new Response("{}")); await resolveEmailToDid(fetchFn, ["alice@example.com", "a+b@example.com"]); expect(fetchFn).toHaveBeenCalledWith( "/_internal/email-did?emails=alice%40example.com&emails=a%2Bb%40example.com" ); });
it("keeps only emails that resolved to a did", async () => { const fetchFn = vi.fn( async () => new Response( JSON.stringify({ "alice@example.com": "did:plc:alice", "bob@example.com": null }) ) ); await expect( resolveEmailToDid(fetchFn, ["alice@example.com", "bob@example.com"]) ).resolves.toEqual(new Map([["alice@example.com", "did:plc:alice"]])); });
it("returns an empty map when the route errors", async () => { const fetchFn = vi.fn(async () => new Response("nope", { status: 500 })); await expect(resolveEmailToDid(fetchFn, ["alice@example.com"])).resolves.toEqual(new Map()); });
it("returns an empty map when the fetch rejects", async () => { const fetchFn = vi.fn(async () => { throw new TypeError("offline"); }); await expect(resolveEmailToDid(fetchFn, ["alice@example.com"])).resolves.toEqual(new Map()); });
it("returns an empty map for a malformed body", async () => { const fetchFn = vi.fn(async () => new Response("not json")); await expect(resolveEmailToDid(fetchFn, ["alice@example.com"])).resolves.toEqual(new Map()); });});