Fix aci value in mentions
This commit is contained in:
parent
e56d0ed9fb
commit
3e7e8328f7
5 changed files with 111 additions and 76 deletions
|
@ -3,9 +3,9 @@
|
|||
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import { generateAci, isAciString } from '../../types/ServiceId';
|
||||
import type { ConversationType } from '../../state/ducks/conversations';
|
||||
import { MemberRepository } from '../../quill/memberRepository';
|
||||
import { MemberRepository, _toMembers } from '../../quill/memberRepository';
|
||||
import { getDefaultConversationWithServiceId } from '../../test-both/helpers/getDefaultConversation';
|
||||
|
||||
const UNKNOWN_SERVICE_ID = generateAci();
|
||||
|
@ -34,7 +34,7 @@ const memberShia: ConversationType = getDefaultConversationWithServiceId({
|
|||
areWeAdmin: false,
|
||||
});
|
||||
|
||||
const members: Array<ConversationType> = [memberMahershala, memberShia];
|
||||
const conversations: Array<ConversationType> = [memberMahershala, memberShia];
|
||||
|
||||
const singleMember: ConversationType = getDefaultConversationWithServiceId({
|
||||
id: '666777',
|
||||
|
@ -51,91 +51,97 @@ const singleMember: ConversationType = getDefaultConversationWithServiceId({
|
|||
describe('MemberRepository', () => {
|
||||
describe('#updateMembers', () => {
|
||||
it('updates with given members', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
assert.deepEqual(memberRepository.getMembers(), members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.deepEqual(
|
||||
memberRepository.getMembers(),
|
||||
_toMembers(conversations)
|
||||
);
|
||||
|
||||
const updatedMembers = [...members, singleMember];
|
||||
memberRepository.updateMembers(updatedMembers);
|
||||
assert.deepEqual(memberRepository.getMembers(), updatedMembers);
|
||||
const updatedConversations = [...conversations, singleMember];
|
||||
memberRepository.updateMembers(updatedConversations);
|
||||
assert.deepEqual(
|
||||
memberRepository.getMembers(),
|
||||
_toMembers(updatedConversations)
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getMemberById', () => {
|
||||
it('returns undefined when there is no search id', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.isUndefined(memberRepository.getMemberById());
|
||||
});
|
||||
|
||||
it('returns a matched member', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.isDefined(memberRepository.getMemberById('555444'));
|
||||
});
|
||||
|
||||
it('returns undefined when it does not have the member', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.isUndefined(memberRepository.getMemberById(UNKNOWN_SERVICE_ID));
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getMemberByServiceId', () => {
|
||||
describe('#getMemberByAci', () => {
|
||||
it('returns undefined when there is no search serviceId', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
assert.isUndefined(memberRepository.getMemberByServiceId());
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.isUndefined(memberRepository.getMemberByAci());
|
||||
});
|
||||
|
||||
it('returns a matched member', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
assert.isDefined(
|
||||
memberRepository.getMemberByServiceId(memberMahershala.serviceId)
|
||||
);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const aci = memberMahershala.serviceId;
|
||||
if (!isAciString(aci)) {
|
||||
throw new Error('Service id not ACI');
|
||||
}
|
||||
assert.isDefined(memberRepository.getMemberByAci(aci));
|
||||
});
|
||||
|
||||
it('returns undefined when it does not have the member', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
assert.isUndefined(
|
||||
memberRepository.getMemberByServiceId(UNKNOWN_SERVICE_ID)
|
||||
);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
assert.isUndefined(memberRepository.getMemberByAci(UNKNOWN_SERVICE_ID));
|
||||
});
|
||||
});
|
||||
|
||||
describe('#search', () => {
|
||||
describe('given a prefix-matching string on last name', () => {
|
||||
it('returns the match', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('a');
|
||||
assert.deepEqual(results, [memberMahershala]);
|
||||
assert.deepEqual(results, _toMembers([memberMahershala]));
|
||||
});
|
||||
});
|
||||
|
||||
describe('given a prefix-matching string on first name', () => {
|
||||
it('returns the match', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('ma');
|
||||
assert.deepEqual(results, [memberMahershala]);
|
||||
assert.deepEqual(results, _toMembers([memberMahershala]));
|
||||
});
|
||||
});
|
||||
|
||||
describe('given a prefix-matching string on profile name', () => {
|
||||
it('returns the match', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('sr');
|
||||
assert.deepEqual(results, [memberShia]);
|
||||
assert.deepEqual(results, _toMembers([memberShia]));
|
||||
});
|
||||
});
|
||||
|
||||
describe('given a prefix-matching string on name', () => {
|
||||
it('returns the match', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('dude');
|
||||
assert.deepEqual(results, [memberShia]);
|
||||
assert.deepEqual(results, _toMembers([memberShia]));
|
||||
});
|
||||
});
|
||||
|
||||
describe('given a prefix-matching string on title', () => {
|
||||
it('returns the match', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('bud');
|
||||
assert.deepEqual(results, [memberShia]);
|
||||
assert.deepEqual(results, _toMembers([memberShia]));
|
||||
});
|
||||
|
||||
it('handles titles with Unicode bidi characters, which some contacts have', () => {
|
||||
|
@ -148,13 +154,13 @@ describe('MemberRepository', () => {
|
|||
memberShiaBidi,
|
||||
]);
|
||||
const results = memberRepository.search('bud');
|
||||
assert.deepEqual(results, [memberShiaBidi]);
|
||||
assert.deepEqual(results, _toMembers([memberShiaBidi]));
|
||||
});
|
||||
});
|
||||
|
||||
describe('given a match in the middle of a name', () => {
|
||||
it('returns zero matches', () => {
|
||||
const memberRepository = new MemberRepository(members);
|
||||
const memberRepository = new MemberRepository(conversations);
|
||||
const results = memberRepository.search('e');
|
||||
assert.deepEqual(results, []);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue