Files
workavia-calendar-front/__test__/utils/userUtils.test.ts
lethemanh cadfa70e60 #708 apply strictier linting rules (#717)
* #708 apply strictier linting rules and fix simple eslint bugs

* #708 fix eslint errors relate to promise

* #708 fix eslint import/no-extraneous-dependencies

* #708 fix eslint errors of react-hook

* #708 enable eslint check for typescript

---------

Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-01 17:15:10 +02: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')
})
})
})