* Add pure sender render inputs to EventTileViewModel * Move sender/avatar normalization to EventTile * Split sender and avatar adapters into focused leaf components * Add tests for the sender and avatar adapters * Fix sonar issues * Make sender profile consume pure member info * Collapse sender adapter onto snapshot-driven props * Share current-member resolution for event and reply tiles * Fix Prettier issues * Keep settings preview on historical sender profiles * Update the proprty name to reflect the use of the event-time sender data instead of resolving the current room member * Fix Sonar issue * Tighten member to MemberInfo | null in the view model
This commit is contained in:
@@ -22,6 +22,7 @@ import {
|
||||
RelationType,
|
||||
type Relations,
|
||||
Room,
|
||||
RoomMember,
|
||||
TweakName,
|
||||
} from "matrix-js-sdk/src/matrix";
|
||||
import {
|
||||
@@ -518,7 +519,7 @@ describe("EventTile", () => {
|
||||
});
|
||||
|
||||
describe("sender and avatar rendering", () => {
|
||||
it("shows sender and avatar in room timelines", () => {
|
||||
it("keeps the sender/avatar composition in room timelines", () => {
|
||||
const { container } = getComponent();
|
||||
|
||||
expect(container.querySelector(".mx_DisambiguatedProfile")).not.toBeNull();
|
||||
@@ -1060,6 +1061,25 @@ describe("EventTile", () => {
|
||||
},
|
||||
);
|
||||
|
||||
it("uses the current room member when current profiles are enabled", async () => {
|
||||
const senderId = mxEvent.getSender()!;
|
||||
const currentMember = new RoomMember(room.roomId, senderId);
|
||||
currentMember.rawDisplayName = "Alan (away)";
|
||||
|
||||
jest.spyOn(room, "getMember").mockImplementation((userId) => (userId === senderId ? currentMember : null));
|
||||
jest.spyOn(SettingsStore, "getValue").mockImplementation(
|
||||
(settingName) => settingName === "useOnlyCurrentProfiles",
|
||||
);
|
||||
|
||||
const { container } = getComponent();
|
||||
|
||||
await waitFor(() =>
|
||||
expect(container.querySelector(".mx_DisambiguatedProfile_displayName")).toHaveTextContent(
|
||||
"Alan (away)",
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
it("renders the tile error fallback when tile rendering throws", async () => {
|
||||
jest.spyOn(console, "error").mockImplementation(() => {});
|
||||
jest.spyOn(EventTileFactory, "renderTile").mockImplementation(() => {
|
||||
|
||||
Reference in New Issue
Block a user