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') }) }) })