messaging post migration cleanup (#19365)

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
neo773
2026-04-07 10:56:49 +02:00
committed by GitHub
co-authored by Charles Bochet
parent 601dc02ed7
commit b23d2b4e73
32 changed files with 155 additions and 353 deletions
@@ -331,7 +331,7 @@ describe('SyncMessageFoldersService', () => {
id: 'folder-1',
externalId: 'child-ext',
name: 'Projects',
parentFolderId: 'old-parent-uuid',
parentFolderId: 'old-parent-ext',
});
const discoveredFolders = [
createMockDiscoveredFolder({
@@ -360,7 +360,7 @@ describe('SyncMessageFoldersService', () => {
expect(mockMessageFolderRepository.update).toHaveBeenCalledWith(
{ id: 'folder-1', messageChannelId: 'channel-123', workspaceId },
expect.objectContaining({
parentFolderId: 'new-parent-uuid',
parentFolderId: 'new-parent-id',
}),
);
});
@@ -115,12 +115,6 @@ export class SyncMessageFoldersService {
messageChannelId: string,
workspaceId: string,
): Promise<MessageFolder[]> {
const externalIdToUuidMap = new Map(
existingFolders
.filter((folder) => isDefined(folder.externalId))
.map((folder) => [folder.externalId as string, folder.id]),
);
const foldersToCreate = computeFoldersToCreate({
discoveredFolders,
existingFolders,
@@ -130,7 +124,6 @@ export class SyncMessageFoldersService {
const foldersToUpdate = computeFoldersToUpdate({
discoveredFolders,
existingFolders,
externalIdToUuidMap,
});
const folderIdsToDelete = computeFolderIdsToDelete({
@@ -2,8 +2,6 @@ import { MessageFolderPendingSyncAction } from 'twenty-shared/types';
import { computeFoldersToUpdate } from 'src/modules/messaging/message-folder-manager/utils/compute-folders-to-update.util';
describe('computeFoldersToUpdate', () => {
const emptyMap = new Map<string, string>();
it('should detect folder rename from provider', () => {
const discoveredFolders = [
{
@@ -31,15 +29,12 @@ describe('computeFoldersToUpdate', () => {
const result = computeFoldersToUpdate({
discoveredFolders,
existingFolders,
externalIdToUuidMap: emptyMap,
});
expect(result.get('folder-id')?.name).toBe('Work Emails');
});
it('should detect folder moved to different parent', () => {
const existingParentUuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee';
const discoveredFolders = [
{
name: 'Subfolder',
@@ -57,23 +52,18 @@ describe('computeFoldersToUpdate', () => {
externalId: 'sub-1',
isSynced: true,
isSentFolder: false,
parentFolderId: 'old-parent-uuid',
parentFolderId: 'old-parent-ext',
syncCursor: 'cursor',
pendingSyncAction: MessageFolderPendingSyncAction.NONE,
},
];
const externalIdToUuidMap = new Map([
['new-parent-ext', existingParentUuid],
]);
const result = computeFoldersToUpdate({
discoveredFolders,
existingFolders,
externalIdToUuidMap,
});
expect(result.get('folder-id')?.parentFolderId).toBe(existingParentUuid);
expect(result.get('folder-id')?.parentFolderId).toBe('new-parent-ext');
});
it('should not flag unchanged folders for update', () => {
@@ -98,7 +88,6 @@ describe('computeFoldersToUpdate', () => {
const result = computeFoldersToUpdate({
discoveredFolders,
existingFolders,
externalIdToUuidMap: emptyMap,
});
expect(result.size).toBe(0);
@@ -131,7 +120,6 @@ describe('computeFoldersToUpdate', () => {
const result = computeFoldersToUpdate({
discoveredFolders,
existingFolders,
externalIdToUuidMap: emptyMap,
});
expect(result.size).toBe(0);
@@ -11,11 +11,9 @@ import { type MessageFolderEntity } from 'src/engine/metadata-modules/message-fo
export const computeFoldersToUpdate = ({
discoveredFolders,
existingFolders,
externalIdToUuidMap,
}: {
discoveredFolders: DiscoveredMessageFolder[];
existingFolders: MessageFolder[];
externalIdToUuidMap: Map<string, string>;
}): Map<string, Partial<MessageFolderEntity>> => {
const existingFoldersByExternalId = new Map(
existingFolders.map((folder) => [folder.externalId, folder]),
@@ -32,16 +30,14 @@ export const computeFoldersToUpdate = ({
continue;
}
const resolvedParentFolderId = isNonEmptyString(
discoveredFolder.parentFolderId,
)
? (externalIdToUuidMap.get(discoveredFolder.parentFolderId) ?? null)
const parentFolderId = isNonEmptyString(discoveredFolder.parentFolderId)
? discoveredFolder.parentFolderId
: null;
const discoveredFolderData = {
name: discoveredFolder.name,
isSentFolder: discoveredFolder.isSentFolder,
parentFolderId: resolvedParentFolderId,
parentFolderId,
};
const existingFolderData = {