You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-06 12:02:40 +03:00
Isolate changes to Thread global into a single describe block (#3390)
This commit is contained in:
@@ -206,85 +206,97 @@ describe("EventTimelineSet", () => {
|
|||||||
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
expect(liveTimeline.getEvents().length).toStrictEqual(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should allow edits to be added to thread timeline", async () => {
|
describe("When the server supports threads", () => {
|
||||||
jest.spyOn(client, "supportsThreads").mockReturnValue(true);
|
let previousThreadHasServerSideSupport: FeatureSupport;
|
||||||
jest.spyOn(client, "getEventMapper").mockReturnValue(eventMapperFor(client, {}));
|
|
||||||
Thread.hasServerSideSupport = FeatureSupport.Stable;
|
|
||||||
|
|
||||||
const sender = "@alice:matrix.org";
|
beforeAll(() => {
|
||||||
|
previousThreadHasServerSideSupport = Thread.hasServerSideSupport;
|
||||||
const root = utils.mkEvent({
|
Thread.hasServerSideSupport = FeatureSupport.Stable;
|
||||||
event: true,
|
|
||||||
content: {
|
|
||||||
body: "Thread root",
|
|
||||||
},
|
|
||||||
type: EventType.RoomMessage,
|
|
||||||
sender,
|
|
||||||
});
|
});
|
||||||
room.addLiveEvents([root]);
|
|
||||||
|
|
||||||
const threadReply = utils.mkEvent({
|
afterAll(() => {
|
||||||
event: true,
|
Thread.hasServerSideSupport = previousThreadHasServerSideSupport;
|
||||||
content: {
|
});
|
||||||
"body": "Thread reply",
|
|
||||||
"m.relates_to": {
|
it("should allow edits to be added to thread timeline", async () => {
|
||||||
event_id: root.getId()!,
|
jest.spyOn(client, "supportsThreads").mockReturnValue(true);
|
||||||
rel_type: RelationType.Thread,
|
jest.spyOn(client, "getEventMapper").mockReturnValue(eventMapperFor(client, {}));
|
||||||
|
|
||||||
|
const sender = "@alice:matrix.org";
|
||||||
|
|
||||||
|
const root = utils.mkEvent({
|
||||||
|
event: true,
|
||||||
|
content: {
|
||||||
|
body: "Thread root",
|
||||||
},
|
},
|
||||||
},
|
type: EventType.RoomMessage,
|
||||||
type: EventType.RoomMessage,
|
sender,
|
||||||
sender,
|
});
|
||||||
});
|
room.addLiveEvents([root]);
|
||||||
|
|
||||||
root.setUnsigned({
|
const threadReply = utils.mkEvent({
|
||||||
"m.relations": {
|
event: true,
|
||||||
[RelationType.Thread]: {
|
content: {
|
||||||
count: 1,
|
"body": "Thread reply",
|
||||||
latest_event: {
|
"m.relates_to": {
|
||||||
content: threadReply.getContent(),
|
event_id: root.getId()!,
|
||||||
origin_server_ts: 5,
|
rel_type: RelationType.Thread,
|
||||||
room_id: room.roomId,
|
|
||||||
sender,
|
|
||||||
type: EventType.RoomMessage,
|
|
||||||
event_id: threadReply.getId()!,
|
|
||||||
user_id: sender,
|
|
||||||
age: 1,
|
|
||||||
},
|
},
|
||||||
current_user_participated: true,
|
|
||||||
},
|
},
|
||||||
},
|
type: EventType.RoomMessage,
|
||||||
});
|
sender,
|
||||||
|
});
|
||||||
|
|
||||||
const editToThreadReply = utils.mkEvent({
|
root.setUnsigned({
|
||||||
event: true,
|
"m.relations": {
|
||||||
content: {
|
[RelationType.Thread]: {
|
||||||
"body": " * edit",
|
count: 1,
|
||||||
"m.new_content": {
|
latest_event: {
|
||||||
"body": "edit",
|
content: threadReply.getContent(),
|
||||||
"msgtype": "m.text",
|
origin_server_ts: 5,
|
||||||
"org.matrix.msc1767.text": "edit",
|
room_id: room.roomId,
|
||||||
|
sender,
|
||||||
|
type: EventType.RoomMessage,
|
||||||
|
event_id: threadReply.getId()!,
|
||||||
|
user_id: sender,
|
||||||
|
age: 1,
|
||||||
|
},
|
||||||
|
current_user_participated: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"m.relates_to": {
|
});
|
||||||
event_id: threadReply.getId()!,
|
|
||||||
rel_type: RelationType.Replace,
|
const editToThreadReply = utils.mkEvent({
|
||||||
|
event: true,
|
||||||
|
content: {
|
||||||
|
"body": " * edit",
|
||||||
|
"m.new_content": {
|
||||||
|
"body": "edit",
|
||||||
|
"msgtype": "m.text",
|
||||||
|
"org.matrix.msc1767.text": "edit",
|
||||||
|
},
|
||||||
|
"m.relates_to": {
|
||||||
|
event_id: threadReply.getId()!,
|
||||||
|
rel_type: RelationType.Replace,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
type: EventType.RoomMessage,
|
||||||
type: EventType.RoomMessage,
|
sender,
|
||||||
sender,
|
});
|
||||||
});
|
|
||||||
|
|
||||||
jest.spyOn(client, "paginateEventTimeline").mockImplementation(async () => {
|
jest.spyOn(client, "paginateEventTimeline").mockImplementation(async () => {
|
||||||
thread.timelineSet.getLiveTimeline().addEvent(threadReply, { toStartOfTimeline: true });
|
thread.timelineSet.getLiveTimeline().addEvent(threadReply, { toStartOfTimeline: true });
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
jest.spyOn(client, "relations").mockResolvedValue({
|
jest.spyOn(client, "relations").mockResolvedValue({
|
||||||
events: [],
|
events: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const thread = room.createThread(root.getId()!, root, [threadReply, editToThreadReply], false);
|
const thread = room.createThread(root.getId()!, root, [threadReply, editToThreadReply], false);
|
||||||
thread.once(RoomEvent.TimelineReset, () => {
|
thread.once(RoomEvent.TimelineReset, () => {
|
||||||
const lastEvent = thread.timeline.at(-1)!;
|
const lastEvent = thread.timeline.at(-1)!;
|
||||||
expect(lastEvent.getContent().body).toBe(" * edit");
|
expect(lastEvent.getContent().body).toBe(" * edit");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user