|  | /** | 
|  | * @license | 
|  | * Copyright 2019 Google LLC | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  | import { | 
|  | AccountInfo, | 
|  | DefaultDisplayNameConfig, | 
|  | EmailAddress, | 
|  | GroupName, | 
|  | ServerInfo, | 
|  | } from '../api/rest-api'; | 
|  | import '../test/common-test-setup'; | 
|  | import { | 
|  | getDisplayName, | 
|  | getUserName, | 
|  | getGroupDisplayName, | 
|  | getAccountDisplayName, | 
|  | _testOnly_accountEmail, | 
|  | } from './display-name-util'; | 
|  | import { | 
|  | createAccountsConfig, | 
|  | createGroupInfo, | 
|  | createServerInfo, | 
|  | } from '../test/test-data-generators'; | 
|  | import {assert} from '@open-wc/testing'; | 
|  |  | 
|  | suite('display-name-utils tests', () => { | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | user: { | 
|  | anonymous_coward_name: 'Anonymous Coward', | 
|  | }, | 
|  | }; | 
|  |  | 
|  | test('getDisplayName name only', () => { | 
|  | const account = { | 
|  | name: 'test-name', | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'test-name'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName prefer displayName', () => { | 
|  | const account = { | 
|  | name: 'test-name', | 
|  | display_name: 'better-name', | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'better-name'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName prefer username default', () => { | 
|  | const account = { | 
|  | name: 'test-name', | 
|  | username: 'user-name', | 
|  | }; | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | accounts: { | 
|  | ...createAccountsConfig(), | 
|  | default_display_name: DefaultDisplayNameConfig.USERNAME, | 
|  | }, | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'user-name'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName firstNameOnly', () => { | 
|  | const account = { | 
|  | name: 'firstname lastname', | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account, true), 'firstname'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName prefer first name default', () => { | 
|  | const account = { | 
|  | name: 'firstname lastname', | 
|  | }; | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | accounts: { | 
|  | ...createAccountsConfig(), | 
|  | default_display_name: DefaultDisplayNameConfig.FIRST_NAME, | 
|  | }, | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'firstname'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName ignore leading whitespace for first name', () => { | 
|  | const account = { | 
|  | name: '   firstname lastname', | 
|  | }; | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | accounts: { | 
|  | ...createAccountsConfig(), | 
|  | default_display_name: DefaultDisplayNameConfig.FIRST_NAME, | 
|  | }, | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'firstname'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName full name default', () => { | 
|  | const account = { | 
|  | name: 'firstname lastname', | 
|  | }; | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | accounts: { | 
|  | ...createAccountsConfig(), | 
|  | default_display_name: DefaultDisplayNameConfig.FULL_NAME, | 
|  | }, | 
|  | }; | 
|  | assert.equal(getDisplayName(config, account), 'firstname lastname'); | 
|  | }); | 
|  |  | 
|  | test('getDisplayName name only', () => { | 
|  | const account = { | 
|  | name: 'test-name', | 
|  | }; | 
|  | assert.deepEqual(getUserName(config, account), 'test-name'); | 
|  | }); | 
|  |  | 
|  | test('getUserName username only', () => { | 
|  | const account = { | 
|  | username: 'test-user', | 
|  | }; | 
|  | assert.deepEqual(getUserName(config, account), 'test-user'); | 
|  | }); | 
|  |  | 
|  | test('getUserName email only', () => { | 
|  | const account: AccountInfo = { | 
|  | email: 'test-user@test-url.com' as EmailAddress, | 
|  | }; | 
|  | assert.deepEqual(getUserName(config, account), 'test-user@test-url.com'); | 
|  | }); | 
|  |  | 
|  | test('getUserName returns not Anonymous Coward as the anon name', () => { | 
|  | assert.deepEqual(getUserName(config, undefined), 'Anonymous'); | 
|  | }); | 
|  |  | 
|  | test('getUserName for the config returning the anon name', () => { | 
|  | const config: ServerInfo = { | 
|  | ...createServerInfo(), | 
|  | user: { | 
|  | anonymous_coward_name: 'Test Anon', | 
|  | }, | 
|  | }; | 
|  | assert.deepEqual(getUserName(config, undefined), 'Test Anon'); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with name only', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, {name: 'Some user name'}), | 
|  | 'Some user name' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with email only', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, { | 
|  | email: 'my@example.com' as EmailAddress, | 
|  | }), | 
|  | 'my@example.com <my@example.com>' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with name and status', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, { | 
|  | name: 'Some name', | 
|  | status: 'OOO', | 
|  | }), | 
|  | 'Some name (OOO)' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with name and email', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, { | 
|  | name: 'Some name', | 
|  | email: 'my@example.com' as EmailAddress, | 
|  | }), | 
|  | 'Some name <my@example.com>' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with name, email and status', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, { | 
|  | name: 'Some name', | 
|  | email: 'my@example.com' as EmailAddress, | 
|  | status: 'OOO', | 
|  | }), | 
|  | 'Some name <my@example.com> (OOO)' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getAccountDisplayName - account with display name', () => { | 
|  | assert.equal( | 
|  | getAccountDisplayName(config, { | 
|  | display_name: 'Display Name', | 
|  | name: 'Some name', | 
|  | email: 'my@example.com' as EmailAddress, | 
|  | status: 'OOO', | 
|  | }), | 
|  | 'Display Name <my@example.com> (OOO)' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('getGroupDisplayName', () => { | 
|  | assert.equal( | 
|  | getGroupDisplayName({ | 
|  | ...createGroupInfo(), | 
|  | name: 'Some user name' as GroupName, | 
|  | }), | 
|  | 'Some user name (group)' | 
|  | ); | 
|  | }); | 
|  |  | 
|  | test('_accountEmail', () => { | 
|  | assert.equal( | 
|  | _testOnly_accountEmail('email@gerritreview.com'), | 
|  | '<email@gerritreview.com>' | 
|  | ); | 
|  | assert.equal(_testOnly_accountEmail(undefined), ''); | 
|  | }); | 
|  | }); |