Use libsignal-client for username validation

This commit is contained in:
Fedor Indutny 2023-05-24 02:07:59 +02:00 committed by GitHub
parent 3ff390e1c4
commit c0663ed57c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 35 additions and 68 deletions

View file

@ -185,7 +185,7 @@ describe('LeftPaneChooseGroupMembersHelper', () => {
const helper = new LeftPaneChooseGroupMembersHelper({
...defaults,
candidateContacts: [],
searchTerm: 'signal',
searchTerm: 'signal.01',
selectedContacts: [],
});
@ -195,7 +195,7 @@ describe('LeftPaneChooseGroupMembersHelper', () => {
);
assert.deepEqual(helper.getRow(1), {
type: RowType.UsernameCheckbox,
username: 'signal',
username: 'signal.01',
isChecked: false,
isFetching: false,
});

View file

@ -88,7 +88,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [getDefaultConversation(), getDefaultConversation()],
composeGroups: [getDefaultGroupListItem(), getDefaultGroupListItem()],
regionCode: 'US',
searchTerm: 'someone',
searchTerm: 'someone.01',
isUsernamesEnabled: true,
uuidFetchState: {},
}).getRowCount(),
@ -102,7 +102,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [getDefaultConversation(), getDefaultConversation()],
composeGroups: [getDefaultGroupListItem(), getDefaultGroupListItem()],
regionCode: 'US',
searchTerm: 'someone',
searchTerm: 'someone.54321',
isUsernamesEnabled: false,
uuidFetchState: {},
}).getRowCount(),
@ -116,7 +116,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [],
composeGroups: [],
regionCode: 'US',
searchTerm: 'foobar',
searchTerm: 'foobar.01',
isUsernamesEnabled: true,
uuidFetchState: {},
}).getRowCount(),
@ -127,7 +127,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [getDefaultConversation(), getDefaultConversation()],
composeGroups: [],
regionCode: 'US',
searchTerm: 'foobar',
searchTerm: 'foobar.01',
isUsernamesEnabled: true,
uuidFetchState: {},
}).getRowCount(),
@ -138,7 +138,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [getDefaultConversation(), getDefaultConversation()],
composeGroups: [getDefaultGroupListItem()],
regionCode: 'US',
searchTerm: 'foobar',
searchTerm: 'foobar.01',
isUsernamesEnabled: true,
uuidFetchState: {},
}).getRowCount(),
@ -166,7 +166,7 @@ describe('LeftPaneComposeHelper', () => {
composeContacts: [],
composeGroups: [],
regionCode: 'US',
searchTerm: 'someone',
searchTerm: 'someone.02',
isUsernamesEnabled: true,
uuidFetchState: {},
}).getRowCount(),
@ -346,7 +346,7 @@ describe('LeftPaneComposeHelper', () => {
});
it('returns just a "find by username" header if no results', () => {
const username = 'someone';
const username = 'someone.02';
const helper = new LeftPaneComposeHelper({
composeContacts: [],

View file

@ -10,38 +10,13 @@ describe('Username', () => {
const { getUsernameFromSearch } = Username;
it('matches invalid username searches', () => {
assert.strictEqual(getUsernameFromSearch('use'), 'use');
assert.strictEqual(
getUsernameFromSearch('username9012345678901234567'),
'username9012345678901234567'
);
assert.isUndefined(getUsernameFromSearch('use'));
assert.isUndefined(getUsernameFromSearch('username9012345678901234567'));
});
it('matches valid username searches', () => {
assert.strictEqual(getUsernameFromSearch('username_34'), 'username_34');
assert.strictEqual(getUsernameFromSearch('u5ername'), 'u5ername');
assert.strictEqual(getUsernameFromSearch('username.12'), 'username.12');
assert.strictEqual(getUsernameFromSearch('user'), 'user');
assert.strictEqual(
getUsernameFromSearch('username901234567890123456'),
'username901234567890123456'
);
});
it('matches valid and invalid usernames with @ prefix', () => {
assert.strictEqual(getUsernameFromSearch('@username!'), 'username!');
assert.strictEqual(getUsernameFromSearch('@1username'), '1username');
assert.strictEqual(getUsernameFromSearch('@username_34'), 'username_34');
assert.strictEqual(getUsernameFromSearch('@username.34'), 'username.34');
assert.strictEqual(getUsernameFromSearch('@u5ername'), 'u5ername');
});
it('matches valid and invalid usernames with @ suffix', () => {
assert.strictEqual(getUsernameFromSearch('username!@'), 'username!');
assert.strictEqual(getUsernameFromSearch('1username@'), '1username');
assert.strictEqual(getUsernameFromSearch('username_34@'), 'username_34');
assert.strictEqual(getUsernameFromSearch('username.34@'), 'username.34');
assert.strictEqual(getUsernameFromSearch('u5ername@'), 'u5ername');
assert.strictEqual(getUsernameFromSearch('xyz.568'), 'xyz.568');
});
it('does not match something that looks like a phone number', () => {