blob: 8092a6e7451ed488fe039f13db15722bf1105cee [file] [log] [blame]
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import '../test/common-test-setup';
import {
createAccountDetailWithIdNameAndEmail,
createChange,
createComment,
createCommentThread,
createServerInfo,
} from '../test/test-data-generators';
import {
AccountId,
AccountInfo,
ChangeInfo,
EmailAddress,
ServerInfo,
} from '../types/common';
import {
getMentionedReason,
getReason,
hasAttention,
} from './attention-set-util';
import {DefaultDisplayNameConfig} from '../api/rest-api';
import {AccountsVisibility} from '../constants/constants';
import {assert} from '@open-wc/testing';
const KERMIT: AccountInfo = {
email: 'kermit@gmail.com' as EmailAddress,
username: 'kermit',
name: 'Kermit The Frog',
_account_id: 31415926535 as AccountId,
};
const OTHER_ACCOUNT: AccountInfo = {
email: 'other@gmail.com' as EmailAddress,
username: 'other',
name: 'Other User',
_account_id: 31415926536 as AccountId,
};
const MENTION_ACCOUNT: AccountInfo = {
email: 'mention@gmail.com' as EmailAddress,
username: 'mention',
name: 'Mention User',
_account_id: 31415926537 as AccountId,
};
const MENTION_ACCOUNT_2: AccountInfo = {
email: 'mention2@gmail.com' as EmailAddress,
username: 'mention2',
name: 'Mention2 User',
_account_id: 31415926538 as AccountId,
};
const change: ChangeInfo = {
...createChange(),
attention_set: {
'31415926535': {
account: KERMIT,
reason: 'a good reason',
},
'31415926536': {
account: OTHER_ACCOUNT,
reason: 'Added by <GERRIT_ACCOUNT_31415926535>',
reason_account: KERMIT,
},
'31415926537': {
account: MENTION_ACCOUNT,
reason: '<GERRIT_ACCOUNT_31415926535> replied on the change',
reason_account: KERMIT,
},
'31415926538': {
account: MENTION_ACCOUNT_2,
reason: 'Bot voted negatively on the change',
reason_account: KERMIT,
},
},
};
const config: ServerInfo = {
...createServerInfo(),
user: {
anonymous_coward_name: 'Unidentified User',
},
accounts: {
visibility: AccountsVisibility.ALL,
default_display_name: DefaultDisplayNameConfig.USERNAME,
},
};
suite('attention-set-util', () => {
test('hasAttention', () => {
assert.isTrue(hasAttention(KERMIT, change));
});
test('getReason', () => {
assert.equal(getReason(config, KERMIT, change), 'a good reason');
assert.equal(getReason(config, OTHER_ACCOUNT, change), 'Added by kermit');
});
test('getMentionReason', () => {
let comment = {
...createComment(),
message: `hey @${MENTION_ACCOUNT.email} take a look at this`,
unresolved: true,
author: {
...createAccountDetailWithIdNameAndEmail(1),
},
};
assert.equal(
getMentionedReason(
[createCommentThread([comment])],
KERMIT,
KERMIT,
config
),
'<GERRIT_ACCOUNT_31415926535> replied on the change'
);
assert.equal(
getMentionedReason(
[createCommentThread([comment])],
KERMIT,
MENTION_ACCOUNT,
config
),
'<GERRIT_ACCOUNT_31415926535> mentioned you in a comment'
);
// resolved mention hence does not change reason
comment = {
...createComment(),
message: `hey @${MENTION_ACCOUNT.email} take a look at this`,
unresolved: false,
author: {
...createAccountDetailWithIdNameAndEmail(1),
},
};
assert.equal(
getMentionedReason(
[createCommentThread([comment])],
KERMIT,
MENTION_ACCOUNT,
config
),
'<GERRIT_ACCOUNT_31415926535> replied on the change'
);
});
});