Skip to content
2 changes: 1 addition & 1 deletion apps/meteor/.eslintcache

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export class FederationHooks {
callbacks.add(
'federation.beforeAddUserToARoom',
(params: { user: IUser | string; inviter?: IUser }, room: IRoom): void => {
if (!params || !params.user || !room) {
if (!params?.user || !room) {
return;
}
Promise.await(callback(params.user, room));
Expand All @@ -59,7 +59,7 @@ export class FederationHooks {
callbacks.add(
'federation.beforeAddUserToARoom',
(params: { user: IUser | string; inviter: IUser }, room: IRoom): void => {
if (!params || !params.user || !params.inviter || !room || !settings.get('Federation_Matrix_enabled')) {
if (!params?.user || !params.inviter || !room || !settings.get('Federation_Matrix_enabled')) {
return;
}

Expand Down Expand Up @@ -189,7 +189,7 @@ export class FederationHooks {
);
}

public static afterRoomRoleChanged(federationRoomService: FederationRoomServiceSender, data: Record<string, any>): void {
public static afterRoomRoleChanged(federationRoomService: FederationRoomServiceSender, data?: Record<string, any>): void {
if (!data || !settings.get('Federation_Matrix_enabled')) {
return;
}
Expand Down
14 changes: 8 additions & 6 deletions apps/meteor/app/lib/server/functions/updateMessage.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { IMessage, IMessageEdited, IUser } from '@rocket.chat/core-typings';
import type { IEditedMessage, IMessage, IUser } from '@rocket.chat/core-typings';
import { Meteor } from 'meteor/meteor';

import { Messages, Rooms } from '../../../models/server';
Expand Down Expand Up @@ -35,11 +35,13 @@ export const updateMessage = function (message: IMessage, user: IUser, originalM
Messages.cloneAndSaveAsHistoryById(message._id, user);
}

(message as IMessageEdited).editedAt = new Date();
(message as IMessageEdited).editedBy = {
_id: user._id,
username: user.username,
};
Object.assign<IMessage, Omit<IEditedMessage, keyof IMessage>>(message, {
editedAt: new Date(),
editedBy: {
_id: user._id,
username: user.username,
},
});

parseUrlsInMessage(message);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ const RoomBody = (): ReactElement => {
callbacks.add(
'streamNewMessage',
(msg: IMessage) => {
if (room._id !== msg.rid || (isEditedMessage(msg) && msg.editedAt) || msg.tmid) {
if (room._id !== msg.rid || isEditedMessage(msg) || msg.tmid) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ const ThreadChat = ({ mainMessage }: ThreadChatProps) => {
callbacks.add(
'streamNewMessage',
(msg: IMessage) => {
if (room._id !== msg.rid || (isEditedMessage(msg) && msg.editedAt) || msg.tmid !== mainMessage._id) {
if (room._id !== msg.rid || isEditedMessage(msg) || msg.tmid !== mainMessage._id) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ callbacks.add(
'afterSaveMessage',
(message: IMessage, room: IRoom) => {
// skips this callback if the message was edited
if (isEditedMessage(message) && message.editedAt) {
if (isEditedMessage(message)) {
return message;
}

Expand Down
19 changes: 17 additions & 2 deletions apps/meteor/tests/mocks/data.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
import faker from '@faker-js/faker';
import type { IMessage, IRoom, ISubscription } from '@rocket.chat/core-typings';
import type { IMessage, IRoom, ISubscription, IUser } from '@rocket.chat/core-typings';
import { parse } from '@rocket.chat/message-parser';

import type { MessageWithMdEnforced } from '../../client/lib/parseMessageTextToAstMarkdown';

export function createFakeUser<TUser extends IUser>(overrides?: Partial<IUser> & Omit<TUser, keyof IUser>): TUser;
export function createFakeUser(overrides?: Partial<IUser>): IUser {
return {
_id: faker.database.mongodbObjectId(),
_updatedAt: faker.date.recent(),
username: faker.internet.userName(),
name: faker.name.findName(),
createdAt: faker.date.recent(),
roles: ['user'],
active: faker.datatype.boolean(),
type: 'user',
...overrides,
};
}

export const createFakeRoom = (overrides?: Partial<IRoom>): IRoom => ({
_id: faker.database.mongodbObjectId(),
_updatedAt: faker.date.recent(),
Expand Down Expand Up @@ -42,7 +57,7 @@ export const createFakeSubscription = (overrides?: Partial<ISubscription>): ISub
...overrides,
});

export function createFakeMessage<TMessage extends IMessage>(overrides?: Partial<TMessage>): TMessage;
export function createFakeMessage<TMessage extends IMessage>(overrides?: Partial<IMessage> & Omit<TMessage, keyof IMessage>): TMessage;
export function createFakeMessage(overrides?: Partial<IMessage>): IMessage {
return {
_id: faker.database.mongodbObjectId(),
Expand Down
Loading