From 2d9ecad61f098c48f1e67e7ba5e38abe716d47c0 Mon Sep 17 00:00:00 2001 From: Suliman Date: Tue, 9 Jun 2026 19:45:31 +0000 Subject: [PATCH] test(vue): add unit tests for getDisplayName utility --- .../__tests__/utils/getDisplayName.test.ts | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 packages/vue/src/__tests__/utils/getDisplayName.test.ts diff --git a/packages/vue/src/__tests__/utils/getDisplayName.test.ts b/packages/vue/src/__tests__/utils/getDisplayName.test.ts new file mode 100644 index 000000000..860f7f28e --- /dev/null +++ b/packages/vue/src/__tests__/utils/getDisplayName.test.ts @@ -0,0 +1,62 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import getDisplayName from '../../utils/getDisplayName'; + +vi.mock('../../utils/getMappedUserProfileValue', () => ({ + default: vi.fn(), +})); + +import getMappedUserProfileValue from '../../utils/getMappedUserProfileValue'; + +const mockGet = getMappedUserProfileValue as ReturnType; + +describe('getDisplayName', () => { + const mergedMappings = {}; + const user = {} as any; + + beforeEach(() => { + mockGet.mockReset(); + }); + + it('returns User when nothing is found', () => { + mockGet.mockReturnValue(undefined); + const result = getDisplayName(mergedMappings, user); + expect(result).toBe('User'); + }); + + it('returns firstName and lastName combined', () => { + mockGet.mockReturnValueOnce('Jane'); + mockGet.mockReturnValueOnce('Doe'); + const result = getDisplayName(mergedMappings, user); + expect(result).toBe('Jane Doe'); + }); + + it('returns username when no firstName or lastName', () => { + mockGet.mockReturnValueOnce(undefined); + mockGet.mockReturnValueOnce(undefined); + mockGet.mockReturnValueOnce('janedoe'); + const result = getDisplayName(mergedMappings, user); + expect(result).toBe('janedoe'); + }); + + it('returns email when no firstName lastName or username', () => { + mockGet.mockReturnValueOnce(undefined); + mockGet.mockReturnValueOnce(undefined); + mockGet.mockReturnValueOnce(undefined); + mockGet.mockReturnValueOnce('jane@example.com'); + const result = getDisplayName(mergedMappings, user); + expect(result).toBe('jane@example.com'); + }); + + it('returns value from displayAttributes when found', () => { + mockGet.mockReturnValueOnce('John'); + const result = getDisplayName(mergedMappings, user, ['firstName']); + expect(result).toBe('John'); + }); + + it('skips empty displayAttributes and uses firstName and lastName', () => { + mockGet.mockReturnValueOnce('Jane'); + mockGet.mockReturnValueOnce('Doe'); + const result = getDisplayName(mergedMappings, user, []); + expect(result).toBe('Jane Doe'); + }); +}); \ No newline at end of file