You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-05 00:42:10 +03:00
Revert "Extra insurance that we don't mix events in the wrong timelines" (#2853)
This reverts commit 433b7afd71
.
This commit is contained in:
committed by
GitHub
parent
38adbaf923
commit
c1a3b95073
@@ -55,23 +55,6 @@ describe('EventTimelineSet', () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const mkThreadResponse = (root: MatrixEvent) => utils.mkEvent({
|
|
||||||
event: true,
|
|
||||||
type: EventType.RoomMessage,
|
|
||||||
user: userA,
|
|
||||||
room: roomId,
|
|
||||||
content: {
|
|
||||||
"body": "Thread response :: " + Math.random(),
|
|
||||||
"m.relates_to": {
|
|
||||||
"event_id": root.getId(),
|
|
||||||
"m.in_reply_to": {
|
|
||||||
"event_id": root.getId(),
|
|
||||||
},
|
|
||||||
"rel_type": "m.thread",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}, room.client);
|
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
client = utils.mock(MatrixClient, 'MatrixClient');
|
client = utils.mock(MatrixClient, 'MatrixClient');
|
||||||
client.reEmitter = utils.mock(ReEmitter, 'ReEmitter');
|
client.reEmitter = utils.mock(ReEmitter, 'ReEmitter');
|
||||||
@@ -134,13 +117,6 @@ describe('EventTimelineSet', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('addEventToTimeline', () => {
|
describe('addEventToTimeline', () => {
|
||||||
let thread: Thread;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
(client.supportsExperimentalThreads as jest.Mock).mockReturnValue(true);
|
|
||||||
thread = new Thread("!thread_id:server", messageEvent, { room, client });
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Adds event to timeline", () => {
|
it("Adds event to timeline", () => {
|
||||||
const liveTimeline = eventTimelineSet.getLiveTimeline();
|
const liveTimeline = eventTimelineSet.getLiveTimeline();
|
||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
||||||
@@ -168,41 +144,6 @@ describe('EventTimelineSet', () => {
|
|||||||
);
|
);
|
||||||
}).not.toThrow();
|
}).not.toThrow();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should not add an event to a timeline that does not belong to the timelineSet", () => {
|
|
||||||
const eventTimelineSet2 = new EventTimelineSet(room);
|
|
||||||
const liveTimeline2 = eventTimelineSet2.getLiveTimeline();
|
|
||||||
expect(liveTimeline2.getEvents().length).toStrictEqual(0);
|
|
||||||
|
|
||||||
expect(() => {
|
|
||||||
eventTimelineSet.addEventToTimeline(messageEvent, liveTimeline2, {
|
|
||||||
toStartOfTimeline: true,
|
|
||||||
});
|
|
||||||
}).toThrowError();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should not add a threaded reply to the main room timeline", () => {
|
|
||||||
const liveTimeline = eventTimelineSet.getLiveTimeline();
|
|
||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
|
||||||
|
|
||||||
const threadedReplyEvent = mkThreadResponse(messageEvent);
|
|
||||||
|
|
||||||
eventTimelineSet.addEventToTimeline(threadedReplyEvent, liveTimeline, {
|
|
||||||
toStartOfTimeline: true,
|
|
||||||
});
|
|
||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should not add a normal message to the timelineSet representing a thread", () => {
|
|
||||||
const eventTimelineSetForThread = new EventTimelineSet(room, {}, client, thread);
|
|
||||||
const liveTimeline = eventTimelineSetForThread.getLiveTimeline();
|
|
||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
|
||||||
|
|
||||||
eventTimelineSetForThread.addEventToTimeline(messageEvent, liveTimeline, {
|
|
||||||
toStartOfTimeline: true,
|
|
||||||
});
|
|
||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('aggregateRelations', () => {
|
describe('aggregateRelations', () => {
|
||||||
|
@@ -702,19 +702,6 @@ export class EventTimelineSet extends TypedEventEmitter<EmittedEvents, EventTime
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeline.getTimelineSet() !== this) {
|
|
||||||
throw new Error(`EventTimelineSet.addEventToTimeline: Timeline=${timeline.toString()} does not belong " +
|
|
||||||
"in timelineSet(threadId=${this.thread?.id})`);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure events don't get mixed in timelines they shouldn't be in
|
|
||||||
// (e.g. a threaded message should not be in the main timeline).
|
|
||||||
if (!this.canContain(event)) {
|
|
||||||
logger.warn(`EventTimelineSet.addEventToTimeline: Ignoring event=${event.getId()} that does not belong " +
|
|
||||||
"in timeline=${timeline.toString()} timelineSet(threadId=${this.thread?.id})`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const eventId = event.getId()!;
|
const eventId = event.getId()!;
|
||||||
timeline.addEvent(event, {
|
timeline.addEvent(event, {
|
||||||
toStartOfTimeline,
|
toStartOfTimeline,
|
||||||
|
@@ -107,7 +107,7 @@ export interface IEventRelation {
|
|||||||
event_id?: string;
|
event_id?: string;
|
||||||
is_falling_back?: boolean;
|
is_falling_back?: boolean;
|
||||||
"m.in_reply_to"?: {
|
"m.in_reply_to"?: {
|
||||||
event_id?: string;
|
event_id: string;
|
||||||
};
|
};
|
||||||
key?: string;
|
key?: string;
|
||||||
}
|
}
|
||||||
|
@@ -1862,7 +1862,7 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|||||||
shouldLiveInThread: boolean;
|
shouldLiveInThread: boolean;
|
||||||
threadId?: string;
|
threadId?: string;
|
||||||
} {
|
} {
|
||||||
if (!this.client?.supportsExperimentalThreads()) {
|
if (!this.client.supportsExperimentalThreads()) {
|
||||||
return {
|
return {
|
||||||
shouldLiveInRoom: true,
|
shouldLiveInRoom: true,
|
||||||
shouldLiveInThread: false,
|
shouldLiveInThread: false,
|
||||||
|
Reference in New Issue
Block a user