From 1e4e256c54078a8f05c4766480c6ad983cd26158 Mon Sep 17 00:00:00 2001 From: Nazareno Bucciarelli Date: Mon, 6 Apr 2026 10:58:14 -0300 Subject: [PATCH 1/2] remove empty fields when building message object --- .changeset/mean-mails-pay.md | 5 +++++ .../importer/server/classes/converters/MessageConverter.ts | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/mean-mails-pay.md diff --git a/.changeset/mean-mails-pay.md b/.changeset/mean-mails-pay.md new file mode 100644 index 0000000000000..b2d32b798e1c1 --- /dev/null +++ b/.changeset/mean-mails-pay.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': patch +--- + +Fixes Slack messages being incorrectly saved on import diff --git a/apps/meteor/app/importer/server/classes/converters/MessageConverter.ts b/apps/meteor/app/importer/server/classes/converters/MessageConverter.ts index cb4cf8047470d..e9e7295078c8d 100644 --- a/apps/meteor/app/importer/server/classes/converters/MessageConverter.ts +++ b/apps/meteor/app/importer/server/classes/converters/MessageConverter.ts @@ -1,5 +1,6 @@ import type { IImportMessageRecord, IMessage as IDBMessage, IImportMessage, IImportMessageReaction } from '@rocket.chat/core-typings'; import { Rooms } from '@rocket.chat/models'; +import { removeEmpty } from '@rocket.chat/tools'; import limax from 'limax'; import type { UserIdentification, MentionedChannel } from './ConverterCache'; @@ -84,7 +85,7 @@ export class MessageConverter extends RecordConverter { const mentions = data.mentions && (await this.convertMessageMentions(data)); const channels = data.channels && (await this.convertMessageChannels(data)); - return { + return removeEmpty({ rid, u: { _id: creator._id, @@ -110,7 +111,7 @@ export class MessageConverter extends RecordConverter { alias: data.alias, ...(data._id ? { _id: data._id } : {}), ...(data.reactions ? { reactions: await this.convertMessageReactions(data.reactions) } : {}), - }; + }); } protected async convertMessageChannels(message: IImportMessage): Promise { From a0abb9f9f3aeb5a44e4828717321eba35f6b15d9 Mon Sep 17 00:00:00 2001 From: Nazareno Bucciarelli Date: Mon, 6 Apr 2026 17:39:54 -0300 Subject: [PATCH 2/2] add test case --- .../unit/app/importer/server/messageConverter.spec.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/meteor/tests/unit/app/importer/server/messageConverter.spec.ts b/apps/meteor/tests/unit/app/importer/server/messageConverter.spec.ts index dcf72bb9b50d6..22ffa2afd4f2a 100644 --- a/apps/meteor/tests/unit/app/importer/server/messageConverter.spec.ts +++ b/apps/meteor/tests/unit/app/importer/server/messageConverter.spec.ts @@ -92,6 +92,16 @@ describe('Message Converter', () => { }); }); + it('should not have properties with undefined values', async () => { + const converter = new MessageConverter({ workInMemory: true }); + + const converted = await converter.buildMessageObject(messageToImport, 'general', { _id: 'rocket.cat', username: 'rocket.cat' }); + + Object.entries(converted).forEach(([key, value]) => { + expect(value, `Property "${key}" should not be undefined`).to.not.be.undefined; + }); + }); + // #TODO: Validate all message attributes });