Files
workavia-calendar-front/__test__/utils/userUtils.test.ts
T
2026-01-20 17:33:30 +01:00

93 lines
2.3 KiB
TypeScript

import { userData } from "@/features/User/userDataTypes";
import { getUserDisplayName } from "@/utils/userUtils";
describe("userUtils", () => {
describe("getUserDisplayName", () => {
it("returns full name when user has name and family_name", () => {
const user: userData = {
sub: "test",
email: "test@test.com",
family_name: "Doe",
given_name: "John",
name: "John",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("John Doe");
});
it("returns email when user does not have name and family_name", () => {
const user: userData = {
sub: "test",
email: "test@test.com",
family_name: "",
given_name: "",
name: "",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("test@test.com");
});
it("returns email when user has only email", () => {
const user: userData = {
sub: "test",
email: "user@example.com",
family_name: "",
given_name: "",
name: "",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("user@example.com");
});
it("returns empty string when user is null", () => {
expect(getUserDisplayName(null)).toBe("");
});
it("returns empty string when user is undefined", () => {
expect(getUserDisplayName(undefined)).toBe("");
});
it("returns empty string when user has no name, family_name, or email", () => {
const user: userData = {
sub: "test",
email: "",
family_name: "",
given_name: "",
name: "",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("");
});
it("handles user with only name (no family_name)", () => {
const user: userData = {
sub: "test",
email: "test@test.com",
family_name: "",
given_name: "John",
name: "John",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("test@test.com");
});
it("handles user with only family_name (no name)", () => {
const user: userData = {
sub: "test",
email: "test@test.com",
family_name: "Doe",
given_name: "",
name: "",
sid: "mockSid",
};
expect(getUserDisplayName(user)).toBe("test@test.com");
});
});
});