blob: 2f938a5148c3c0384a49916eca5fd9ab6054fc77 [file] [log] [blame]
/**
* @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), '');
});
});