import { describe, it, expect } from "vitest"; import { prependOwnerToTeamName, stripOwnerFromTeamName, } from "~/utils/team-names"; describe("prependOwnerToTeamName", () => { it("prepends username with 's possessive", () => { expect(prependOwnerToTeamName("Kind Cobras", "bob")).toBe( "Bob's Kind Cobras" ); }); it("uses ' possessive when username ends in s", () => { expect(prependOwnerToTeamName("Kind Cobras", "chris")).toBe( "Chris' Kind Cobras" ); }); it("capitalizes first letter of username", () => { expect(prependOwnerToTeamName("Furious Penguins", "christhrowsrock")).toBe( "Christhrowsrock's Furious Penguins" ); }); it("handles username already capitalized", () => { expect(prependOwnerToTeamName("Bold Bears", "Alice")).toBe( "Alice's Bold Bears" ); }); it("handles name ending in multiple s characters", () => { expect(prependOwnerToTeamName("Mighty Tigers", "jess")).toBe( "Jess' Mighty Tigers" ); }); it("handles display name fallback", () => { expect(prependOwnerToTeamName("Wild Wolves", "Member")).toBe( "Member's Wild Wolves" ); }); it("handles single character username", () => { expect(prependOwnerToTeamName("Team 1", "s")).toBe("S's Team 1"); }); it("handles empty base name", () => { expect(prependOwnerToTeamName("", "bob")).toBe("Bob's "); }); }); describe("stripOwnerFromTeamName", () => { it("strips 's possessive prefix", () => { expect(stripOwnerFromTeamName("Bob's Kind Cobras", "bob")).toBe( "Kind Cobras" ); }); it("strips ' possessive prefix for names ending in s", () => { expect(stripOwnerFromTeamName("Chris' Kind Cobras", "chris")).toBe( "Kind Cobras" ); }); it("returns name unchanged if prefix does not match", () => { expect( stripOwnerFromTeamName("Alice's Awesome Team", "bob") ).toBe("Alice's Awesome Team"); }); it("handles title case mismatch in username", () => { expect(stripOwnerFromTeamName("Bob's Team", "bob")).toBe("Team"); }); it("returns name unchanged if renamed by owner", () => { expect(stripOwnerFromTeamName("Custom Name", "bob")).toBe("Custom Name"); }); it("handles username ending in s matching 's prefix", () => { expect(stripOwnerFromTeamName("Jess' Wild Wolves", "jess")).toBe( "Wild Wolves" ); }); });