maybeMergeContacts/create: Put PNI into UUID field if no ACI
This commit is contained in:
parent
15714f35ef
commit
74374e4313
2 changed files with 35 additions and 3 deletions
|
@ -451,9 +451,6 @@ export class ConversationController {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const identifier = aci || e164 || pni;
|
|
||||||
strictAssert(identifier, `${logId}: identifier must be truthy!`);
|
|
||||||
|
|
||||||
const matches: Array<ConvoMatchType> = [
|
const matches: Array<ConvoMatchType> = [
|
||||||
{
|
{
|
||||||
key: 'uuid',
|
key: 'uuid',
|
||||||
|
@ -591,6 +588,12 @@ export class ConversationController {
|
||||||
);
|
);
|
||||||
|
|
||||||
log.info(`${logId}: Creating a new conversation with all inputs`);
|
log.info(`${logId}: Creating a new conversation with all inputs`);
|
||||||
|
|
||||||
|
// This is not our precedence for lookup, but it ensures that the PNI gets into the
|
||||||
|
// uuid slot if we have no ACI.
|
||||||
|
const identifier = aci || pni || e164;
|
||||||
|
strictAssert(identifier, `${logId}: identifier must be truthy!`);
|
||||||
|
|
||||||
return this.getOrCreate(identifier, 'private', { e164, pni });
|
return this.getOrCreate(identifier, 'private', { e164, pni });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -190,6 +190,35 @@ describe('ConversationController', () => {
|
||||||
|
|
||||||
assert.strictEqual(result?.id, second?.id, 'result and second match');
|
assert.strictEqual(result?.id, second?.id, 'result and second match');
|
||||||
});
|
});
|
||||||
|
it('creates a new conversation with e164+PNI if no matches', () => {
|
||||||
|
const result = window.ConversationController.maybeMergeContacts({
|
||||||
|
mergeOldAndNew,
|
||||||
|
e164: E164_1,
|
||||||
|
pni: PNI_1,
|
||||||
|
reason,
|
||||||
|
});
|
||||||
|
|
||||||
|
expectPropsAndLookups(result, 'result', {
|
||||||
|
aci: PNI_1,
|
||||||
|
e164: E164_1,
|
||||||
|
pni: PNI_1,
|
||||||
|
});
|
||||||
|
|
||||||
|
const second = window.ConversationController.maybeMergeContacts({
|
||||||
|
mergeOldAndNew,
|
||||||
|
e164: E164_1,
|
||||||
|
pni: PNI_1,
|
||||||
|
reason,
|
||||||
|
});
|
||||||
|
|
||||||
|
expectPropsAndLookups(second, 'second', {
|
||||||
|
aci: PNI_1,
|
||||||
|
e164: E164_1,
|
||||||
|
pni: PNI_1,
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.strictEqual(result?.id, second?.id, 'result and second match');
|
||||||
|
});
|
||||||
it('creates a new conversation with all data if no matches', () => {
|
it('creates a new conversation with all data if no matches', () => {
|
||||||
const result = window.ConversationController.maybeMergeContacts({
|
const result = window.ConversationController.maybeMergeContacts({
|
||||||
mergeOldAndNew,
|
mergeOldAndNew,
|
||||||
|
|
Loading…
Reference in a new issue