Preserve all emails, phones, and links when merging records (#15224)
This commit is contained in:
+9
-2
@@ -88,6 +88,9 @@ describe('companies merge resolvers (integration)', () => {
|
||||
expect(mergedCompany.linkedinLink.primaryLinkLabel).toBe('Main LinkedIn');
|
||||
expect(mergedCompany.linkedinLink.secondaryLinks).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
url: 'https://linkedin.com/company/company-b',
|
||||
}),
|
||||
expect.objectContaining({
|
||||
url: 'linkedin.com/company/subsidiary-a1',
|
||||
}),
|
||||
@@ -102,7 +105,7 @@ describe('companies merge resolvers (integration)', () => {
|
||||
}),
|
||||
]),
|
||||
);
|
||||
expect(mergedCompany.linkedinLink.secondaryLinks).toHaveLength(4);
|
||||
expect(mergedCompany.linkedinLink.secondaryLinks).toHaveLength(5);
|
||||
});
|
||||
|
||||
it('should merge links with deduplication', async () => {
|
||||
@@ -171,12 +174,13 @@ describe('companies merge resolvers (integration)', () => {
|
||||
);
|
||||
const secondaryLinks = mergedCompany.linkedinLink.secondaryLinks;
|
||||
|
||||
expect(secondaryLinks).toHaveLength(3);
|
||||
expect(secondaryLinks).toHaveLength(4);
|
||||
|
||||
const urls = secondaryLinks.map((link: { url: string }) => link.url);
|
||||
|
||||
expect(urls).toEqual(
|
||||
expect.arrayContaining([
|
||||
'https://linkedin.com/company/corp-tech',
|
||||
'linkedin.com/company/shared-subsidiary',
|
||||
'linkedin.com/company/tech-division',
|
||||
'linkedin.com/company/corp-division',
|
||||
@@ -243,6 +247,9 @@ describe('companies merge resolvers (integration)', () => {
|
||||
expect(mergedCompany.linkedinLink.primaryLinkLabel).toBe('Second Label');
|
||||
expect(mergedCompany.linkedinLink.secondaryLinks).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
url: 'https://linkedin.com/company/first-priority',
|
||||
}),
|
||||
expect.objectContaining({ url: 'linkedin.com/company/first-sub' }),
|
||||
expect.objectContaining({ url: 'linkedin.com/company/second-sub' }),
|
||||
]),
|
||||
|
||||
+10
-4
@@ -81,13 +81,14 @@ describe('people merge resolvers (integration)', () => {
|
||||
expect(mergedPerson.emails.primaryEmail).toBe('john@example.com');
|
||||
expect(mergedPerson.emails.additionalEmails).toEqual(
|
||||
expect.arrayContaining([
|
||||
'jane@example.com',
|
||||
'john.alt@example.com',
|
||||
'john.work@example.com',
|
||||
'jane.alt@example.com',
|
||||
'jane.personal@example.com',
|
||||
]),
|
||||
);
|
||||
expect(mergedPerson.emails.additionalEmails).toHaveLength(4);
|
||||
expect(mergedPerson.emails.additionalEmails).toHaveLength(5);
|
||||
});
|
||||
|
||||
it('should merge emails with deduplication', async () => {
|
||||
@@ -145,9 +146,10 @@ describe('people merge resolvers (integration)', () => {
|
||||
expect(mergedPerson.emails.primaryEmail).toBe('alice@example.com');
|
||||
const additionalEmails = mergedPerson.emails.additionalEmails;
|
||||
|
||||
expect(additionalEmails).toHaveLength(3);
|
||||
expect(additionalEmails).toHaveLength(4);
|
||||
expect(additionalEmails).toEqual(
|
||||
expect.arrayContaining([
|
||||
'bob@example.com',
|
||||
'shared@example.com',
|
||||
'alice.work@example.com',
|
||||
'bob.work@example.com',
|
||||
@@ -213,6 +215,7 @@ describe('people merge resolvers (integration)', () => {
|
||||
expect(mergedPerson.emails.primaryEmail).toBe('second@example.com');
|
||||
expect(mergedPerson.emails.additionalEmails).toEqual(
|
||||
expect.arrayContaining([
|
||||
'first@example.com',
|
||||
'first.extra@example.com',
|
||||
'second.extra@example.com',
|
||||
]),
|
||||
@@ -279,6 +282,7 @@ describe('people merge resolvers (integration)', () => {
|
||||
expect(dryRunResult.emails.primaryEmail).toBe('test1@example.com');
|
||||
expect(dryRunResult.emails.additionalEmails).toEqual(
|
||||
expect.arrayContaining([
|
||||
'test2@example.com',
|
||||
'test1.extra@example.com',
|
||||
'test2.extra@example.com',
|
||||
]),
|
||||
@@ -401,22 +405,24 @@ describe('people merge resolvers (integration)', () => {
|
||||
expect(mergedPerson.phones.primaryPhoneCallingCode).toBe('+1');
|
||||
expect(mergedPerson.phones.additionalPhones).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({ number: '4445556789' }),
|
||||
expect.objectContaining({ number: '5559876543' }),
|
||||
expect.objectContaining({ number: '4441112222' }),
|
||||
]),
|
||||
);
|
||||
expect(mergedPerson.phones.additionalPhones).toHaveLength(2);
|
||||
expect(mergedPerson.phones.additionalPhones).toHaveLength(3);
|
||||
|
||||
expect(mergedPerson.whatsapp.primaryPhoneNumber).toBe('810407803');
|
||||
expect(mergedPerson.whatsapp.primaryPhoneCountryCode).toBe('FR');
|
||||
expect(mergedPerson.whatsapp.primaryPhoneCallingCode).toBe('+33');
|
||||
expect(mergedPerson.whatsapp.additionalPhones).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({ number: '987654321' }),
|
||||
expect.objectContaining({ number: '8104078034' }),
|
||||
expect.objectContaining({ number: '123456789' }),
|
||||
]),
|
||||
);
|
||||
expect(mergedPerson.whatsapp.additionalPhones).toHaveLength(2);
|
||||
expect(mergedPerson.whatsapp.additionalPhones).toHaveLength(3);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user