You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-07-30 02:21:17 +03:00
Apply prettier formatting
This commit is contained in:
@ -17,7 +17,7 @@ limitations under the License.
|
||||
import { render, RenderResult } from "@testing-library/react";
|
||||
// eslint-disable-next-line deprecate/import
|
||||
import { mount, ReactWrapper } from "enzyme";
|
||||
import { MessageEvent } from 'matrix-events-sdk';
|
||||
import { MessageEvent } from "matrix-events-sdk";
|
||||
import { ReceiptType } from "matrix-js-sdk/src/@types/read_receipts";
|
||||
import {
|
||||
EventTimelineSet,
|
||||
@ -28,7 +28,7 @@ import {
|
||||
Room,
|
||||
RoomEvent,
|
||||
TimelineWindow,
|
||||
} from 'matrix-js-sdk/src/matrix';
|
||||
} from "matrix-js-sdk/src/matrix";
|
||||
import { EventTimeline } from "matrix-js-sdk/src/models/event-timeline";
|
||||
import {
|
||||
FeatureSupport,
|
||||
@ -37,13 +37,13 @@ import {
|
||||
ThreadEvent,
|
||||
ThreadFilterType,
|
||||
} from "matrix-js-sdk/src/models/thread";
|
||||
import React from 'react';
|
||||
import React from "react";
|
||||
|
||||
import TimelinePanel from '../../../src/components/structures/TimelinePanel';
|
||||
import TimelinePanel from "../../../src/components/structures/TimelinePanel";
|
||||
import MatrixClientContext from "../../../src/contexts/MatrixClientContext";
|
||||
import { MatrixClientPeg } from '../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
||||
import SettingsStore from "../../../src/settings/SettingsStore";
|
||||
import { isCallEvent } from '../../../src/components/structures/LegacyCallEventGrouper';
|
||||
import { isCallEvent } from "../../../src/components/structures/LegacyCallEventGrouper";
|
||||
import { flushPromises, mkRoom, stubClient } from "../../test-utils";
|
||||
|
||||
const newReceipt = (eventId: string, userId: string, readTs: number, fullyReadTs: number): MatrixEvent => {
|
||||
@ -81,13 +81,15 @@ const renderPanel = (room: Room, events: MatrixEvent[]): RenderResult => {
|
||||
const mockEvents = (room: Room, count = 2): MatrixEvent[] => {
|
||||
const events: MatrixEvent[] = [];
|
||||
for (let index = 0; index < count; index++) {
|
||||
events.push(new MatrixEvent({
|
||||
room_id: room.roomId,
|
||||
event_id: `${room.roomId}_event_${index}`,
|
||||
type: EventType.RoomMessage,
|
||||
user_id: "userId",
|
||||
content: MessageEvent.from(`Event${index}`).serialize().content,
|
||||
}));
|
||||
events.push(
|
||||
new MatrixEvent({
|
||||
room_id: room.roomId,
|
||||
event_id: `${room.roomId}_event_${index}`,
|
||||
type: EventType.RoomMessage,
|
||||
user_id: "userId",
|
||||
content: MessageEvent.from(`Event${index}`).serialize().content,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
return events;
|
||||
@ -100,13 +102,13 @@ const setupTestData = (): [MatrixClient, Room, MatrixEvent[]] => {
|
||||
return [client, room, events];
|
||||
};
|
||||
|
||||
describe('TimelinePanel', () => {
|
||||
describe("TimelinePanel", () => {
|
||||
beforeEach(() => {
|
||||
stubClient();
|
||||
});
|
||||
|
||||
describe('read receipts and markers', () => {
|
||||
it('should forget the read marker when asked to', () => {
|
||||
describe("read receipts and markers", () => {
|
||||
it("should forget the read marker when asked to", () => {
|
||||
const cli = MatrixClientPeg.get();
|
||||
const readMarkersSent: string[] = [];
|
||||
|
||||
@ -131,22 +133,19 @@ describe('TimelinePanel', () => {
|
||||
|
||||
const roomId = "#room:example.com";
|
||||
const userId = cli.credentials.userId!;
|
||||
const room = new Room(
|
||||
roomId,
|
||||
cli,
|
||||
userId,
|
||||
{ pendingEventOrdering: PendingEventOrdering.Detached },
|
||||
);
|
||||
const room = new Room(roomId, cli, userId, { pendingEventOrdering: PendingEventOrdering.Detached });
|
||||
|
||||
// Create a TimelinePanel with ev0 already present
|
||||
const timelineSet = new EventTimelineSet(room, {});
|
||||
timelineSet.addLiveEvent(ev0);
|
||||
const component: ReactWrapper<TimelinePanel> = mount(<TimelinePanel
|
||||
timelineSet={timelineSet}
|
||||
manageReadMarkers={true}
|
||||
manageReadReceipts={true}
|
||||
eventId={ev0.getId()}
|
||||
/>);
|
||||
const component: ReactWrapper<TimelinePanel> = mount(
|
||||
<TimelinePanel
|
||||
timelineSet={timelineSet}
|
||||
manageReadMarkers={true}
|
||||
manageReadReceipts={true}
|
||||
eventId={ev0.getId()}
|
||||
/>,
|
||||
);
|
||||
const timelinePanel = component.instance() as TimelinePanel;
|
||||
|
||||
// An event arrived, and we read it
|
||||
@ -208,8 +207,8 @@ describe('TimelinePanel', () => {
|
||||
expect(props.onEventScrolledIntoView).toHaveBeenCalledWith(events[1].getId());
|
||||
});
|
||||
|
||||
describe('onRoomTimeline', () => {
|
||||
it('ignores events for other timelines', () => {
|
||||
describe("onRoomTimeline", () => {
|
||||
it("ignores events for other timelines", () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
|
||||
const otherTimelineSet = { room: room as Room } as EventTimelineSet;
|
||||
@ -220,7 +219,7 @@ describe('TimelinePanel', () => {
|
||||
onEventScrolledIntoView: jest.fn(),
|
||||
};
|
||||
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, 'paginate').mockClear();
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||
|
||||
render(<TimelinePanel {...props} />);
|
||||
|
||||
@ -231,12 +230,12 @@ describe('TimelinePanel', () => {
|
||||
expect(paginateSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('ignores timeline updates without a live event', () => {
|
||||
it("ignores timeline updates without a live event", () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
|
||||
const props = getProps(room, events);
|
||||
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, 'paginate').mockClear();
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||
|
||||
render(<TimelinePanel {...props} />);
|
||||
|
||||
@ -247,12 +246,12 @@ describe('TimelinePanel', () => {
|
||||
expect(paginateSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('ignores timeline where toStartOfTimeline is true', () => {
|
||||
it("ignores timeline where toStartOfTimeline is true", () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
|
||||
const props = getProps(room, events);
|
||||
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, 'paginate').mockClear();
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||
|
||||
render(<TimelinePanel {...props} />);
|
||||
|
||||
@ -264,12 +263,12 @@ describe('TimelinePanel', () => {
|
||||
expect(paginateSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('advances the timeline window', () => {
|
||||
it("advances the timeline window", () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
|
||||
const props = getProps(room, events);
|
||||
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, 'paginate').mockClear();
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||
|
||||
render(<TimelinePanel {...props} />);
|
||||
|
||||
@ -280,7 +279,7 @@ describe('TimelinePanel', () => {
|
||||
expect(paginateSpy).toHaveBeenCalledWith(EventTimeline.FORWARDS, 1, false);
|
||||
});
|
||||
|
||||
it('advances the overlay timeline window', async () => {
|
||||
it("advances the overlay timeline window", async () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
|
||||
const virtualRoom = mkRoom(client, "virtualRoomId");
|
||||
@ -292,7 +291,7 @@ describe('TimelinePanel', () => {
|
||||
overlayTimelineSet,
|
||||
};
|
||||
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, 'paginate').mockClear();
|
||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||
|
||||
render(<TimelinePanel {...props} />);
|
||||
|
||||
@ -306,25 +305,21 @@ describe('TimelinePanel', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('with overlayTimeline', () => {
|
||||
it('renders merged timeline', () => {
|
||||
describe("with overlayTimeline", () => {
|
||||
it("renders merged timeline", () => {
|
||||
const [client, room, events] = setupTestData();
|
||||
const virtualRoom = mkRoom(client, "virtualRoomId");
|
||||
const virtualCallInvite = new MatrixEvent({
|
||||
type: 'm.call.invite',
|
||||
type: "m.call.invite",
|
||||
room_id: virtualRoom.roomId,
|
||||
event_id: `virtualCallEvent1`,
|
||||
});
|
||||
const virtualCallMetaEvent = new MatrixEvent({
|
||||
type: 'org.matrix.call.sdp_stream_metadata_changed',
|
||||
type: "org.matrix.call.sdp_stream_metadata_changed",
|
||||
room_id: virtualRoom.roomId,
|
||||
event_id: `virtualCallEvent2`,
|
||||
});
|
||||
const virtualEvents = [
|
||||
virtualCallInvite,
|
||||
...mockEvents(virtualRoom),
|
||||
virtualCallMetaEvent,
|
||||
];
|
||||
const virtualEvents = [virtualCallInvite, ...mockEvents(virtualRoom), virtualCallMetaEvent];
|
||||
const { timelineSet: overlayTimelineSet } = getProps(virtualRoom, virtualEvents);
|
||||
|
||||
const props = {
|
||||
@ -335,8 +330,8 @@ describe('TimelinePanel', () => {
|
||||
|
||||
const { container } = render(<TimelinePanel {...props} />);
|
||||
|
||||
const eventTiles = container.querySelectorAll('.mx_EventTile');
|
||||
const eventTileIds = [...eventTiles].map(tileElement => tileElement.getAttribute('data-event-id'));
|
||||
const eventTiles = container.querySelectorAll(".mx_EventTile");
|
||||
const eventTileIds = [...eventTiles].map((tileElement) => tileElement.getAttribute("data-event-id"));
|
||||
expect(eventTileIds).toEqual([
|
||||
// main timeline events are included
|
||||
events[1].getId(),
|
||||
@ -368,16 +363,22 @@ describe('TimelinePanel', () => {
|
||||
});
|
||||
|
||||
room = new Room("roomId", client, "userId");
|
||||
allThreads = new EventTimelineSet(room, {
|
||||
pendingEvents: false,
|
||||
}, undefined, undefined, ThreadFilterType.All);
|
||||
allThreads = new EventTimelineSet(
|
||||
room,
|
||||
{
|
||||
pendingEvents: false,
|
||||
},
|
||||
undefined,
|
||||
undefined,
|
||||
ThreadFilterType.All,
|
||||
);
|
||||
const timeline = new EventTimeline(allThreads);
|
||||
allThreads.getLiveTimeline = () => timeline;
|
||||
allThreads.getTimelineForEvent = () => timeline;
|
||||
|
||||
reply1 = new MatrixEvent({
|
||||
room_id: room.roomId,
|
||||
event_id: 'event_reply_1',
|
||||
event_id: "event_reply_1",
|
||||
type: EventType.RoomMessage,
|
||||
user_id: "userId",
|
||||
content: MessageEvent.from(`ReplyEvent1`).serialize().content,
|
||||
@ -385,7 +386,7 @@ describe('TimelinePanel', () => {
|
||||
|
||||
reply2 = new MatrixEvent({
|
||||
room_id: room.roomId,
|
||||
event_id: 'event_reply_2',
|
||||
event_id: "event_reply_2",
|
||||
type: EventType.RoomMessage,
|
||||
user_id: "userId",
|
||||
content: MessageEvent.from(`ReplyEvent2`).serialize().content,
|
||||
@ -393,7 +394,7 @@ describe('TimelinePanel', () => {
|
||||
|
||||
root = new MatrixEvent({
|
||||
room_id: room.roomId,
|
||||
event_id: 'event_root_1',
|
||||
event_id: "event_root_1",
|
||||
type: EventType.RoomMessage,
|
||||
user_id: "userId",
|
||||
content: MessageEvent.from(`RootEvent`).serialize().content,
|
||||
@ -410,13 +411,13 @@ describe('TimelinePanel', () => {
|
||||
roomId === room.roomId ? eventMap[eventId]?.event : {};
|
||||
});
|
||||
|
||||
it('updates thread previews', async () => {
|
||||
it("updates thread previews", async () => {
|
||||
root.setUnsigned({
|
||||
"m.relations": {
|
||||
[THREAD_RELATION_TYPE.name]: {
|
||||
"latest_event": reply1.event,
|
||||
"count": 1,
|
||||
"current_user_participated": true,
|
||||
latest_event: reply1.event,
|
||||
count: 1,
|
||||
current_user_participated: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
@ -432,11 +433,7 @@ describe('TimelinePanel', () => {
|
||||
|
||||
const dom = render(
|
||||
<MatrixClientContext.Provider value={client}>
|
||||
<TimelinePanel
|
||||
timelineSet={allThreads}
|
||||
manageReadReceipts
|
||||
sendReadReceiptOnLoad
|
||||
/>
|
||||
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
||||
</MatrixClientContext.Provider>,
|
||||
);
|
||||
await dom.findByText("RootEvent");
|
||||
@ -446,9 +443,9 @@ describe('TimelinePanel', () => {
|
||||
root.setUnsigned({
|
||||
"m.relations": {
|
||||
[THREAD_RELATION_TYPE.name]: {
|
||||
"latest_event": reply2.event,
|
||||
"count": 2,
|
||||
"current_user_participated": true,
|
||||
latest_event: reply2.event,
|
||||
count: 2,
|
||||
current_user_participated: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
@ -460,13 +457,13 @@ describe('TimelinePanel', () => {
|
||||
expect(replyToEvent).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('ignores thread updates for unknown threads', async () => {
|
||||
it("ignores thread updates for unknown threads", async () => {
|
||||
root.setUnsigned({
|
||||
"m.relations": {
|
||||
[THREAD_RELATION_TYPE.name]: {
|
||||
"latest_event": reply1.event,
|
||||
"count": 1,
|
||||
"current_user_participated": true,
|
||||
latest_event: reply1.event,
|
||||
count: 1,
|
||||
current_user_participated: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
@ -499,11 +496,7 @@ describe('TimelinePanel', () => {
|
||||
|
||||
const dom = render(
|
||||
<MatrixClientContext.Provider value={client}>
|
||||
<TimelinePanel
|
||||
timelineSet={allThreads}
|
||||
manageReadReceipts
|
||||
sendReadReceiptOnLoad
|
||||
/>
|
||||
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
||||
</MatrixClientContext.Provider>,
|
||||
);
|
||||
await dom.findByText("RootEvent");
|
||||
|
Reference in New Issue
Block a user