import { describe, expect, it } from "vitest"; import { recommendUsers } from "$lib/components/ui/markdownSuggestions"; const person = (n: number) => ({ did: `did:plc:${n}`, handle: `user${n}.test` }); describe("recommendUsers", () => { it("keeps the first five distinct people in order", () => { const people = [ person(1), person(2), person(1), person(3), person(4), person(5), person(6) ]; expect(recommendUsers(people, undefined).map((user) => user.handle)).toEqual([ "user1.test", "user2.test", "user3.test", "user4.test", "user5.test" ]); }); it("skips the viewer and people without a usable handle", () => { const people = [ person(1), { did: "did:plc:x" }, { did: "did:plc:y", handle: "handle.invalid" }, person(2) ]; expect(recommendUsers(people, "did:plc:1").map((user) => user.handle)).toEqual([ "user2.test" ]); }); it("inserts a mention with a trailing space", () => { expect(recommendUsers([person(7)], undefined)[0].insert).toBe("@user7.test "); }); });