You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-31 15:24:23 +03:00
Threads are missing from the timeline (#2996)
This commit is contained in:
committed by
GitHub
parent
618242ef3c
commit
4f86eee250
@ -1016,6 +1016,61 @@ describe("MatrixClient event timelines", function () {
|
|||||||
httpBackend.flushAllExpected(),
|
httpBackend.flushAllExpected(),
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should create threads for thread roots discovered", function () {
|
||||||
|
const room = client.getRoom(roomId)!;
|
||||||
|
const timelineSet = room.getTimelineSets()[0];
|
||||||
|
|
||||||
|
httpBackend
|
||||||
|
.when("GET", "/rooms/!foo%3Abar/context/" + encodeURIComponent(EVENTS[0].event_id!))
|
||||||
|
.respond(200, function () {
|
||||||
|
return {
|
||||||
|
start: "start_token0",
|
||||||
|
events_before: [],
|
||||||
|
event: EVENTS[0],
|
||||||
|
events_after: [],
|
||||||
|
end: "end_token0",
|
||||||
|
state: [],
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
httpBackend
|
||||||
|
.when("GET", "/rooms/!foo%3Abar/messages")
|
||||||
|
.check(function (req) {
|
||||||
|
const params = req.queryParams!;
|
||||||
|
expect(params.dir).toEqual("b");
|
||||||
|
expect(params.from).toEqual("start_token0");
|
||||||
|
expect(params.limit).toEqual("30");
|
||||||
|
})
|
||||||
|
.respond(200, function () {
|
||||||
|
return {
|
||||||
|
chunk: [EVENTS[1], EVENTS[2], THREAD_ROOT],
|
||||||
|
end: "start_token1",
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
let tl: EventTimeline;
|
||||||
|
return Promise.all([
|
||||||
|
client
|
||||||
|
.getEventTimeline(timelineSet, EVENTS[0].event_id!)
|
||||||
|
.then(function (tl0) {
|
||||||
|
tl = tl0!;
|
||||||
|
return client.paginateEventTimeline(tl, { backwards: true });
|
||||||
|
})
|
||||||
|
.then(function (success) {
|
||||||
|
expect(success).toBeTruthy();
|
||||||
|
expect(tl!.getEvents().length).toEqual(4);
|
||||||
|
expect(tl!.getEvents()[0].event).toEqual(THREAD_ROOT);
|
||||||
|
expect(tl!.getEvents()[1].event).toEqual(EVENTS[2]);
|
||||||
|
expect(tl!.getEvents()[2].event).toEqual(EVENTS[1]);
|
||||||
|
expect(tl!.getEvents()[3].event).toEqual(EVENTS[0]);
|
||||||
|
expect(room.getThreads().map((it) => it.id)).toEqual([THREAD_ROOT.event_id!]);
|
||||||
|
expect(tl!.getPaginationToken(EventTimeline.BACKWARDS)).toEqual("start_token1");
|
||||||
|
expect(tl!.getPaginationToken(EventTimeline.FORWARDS)).toEqual("end_token0");
|
||||||
|
}),
|
||||||
|
httpBackend.flushAllExpected(),
|
||||||
|
]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should ensure thread events are ordered correctly", async () => {
|
it("should ensure thread events are ordered correctly", async () => {
|
||||||
|
@ -6059,7 +6059,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
|
|||||||
this.processBeaconEvents(room, timelineEvents);
|
this.processBeaconEvents(room, timelineEvents);
|
||||||
this.processThreadRoots(
|
this.processThreadRoots(
|
||||||
room,
|
room,
|
||||||
timelineEvents.filter((it) => it.isRelation(THREAD_RELATION_TYPE.name)),
|
timelineEvents.filter((it) => it.getServerAggregatedRelation(THREAD_RELATION_TYPE.name)),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user