* Factor out E2ePadlock to its own file * Show "Bob shared this message" on messages shared via MSC4268 If we received the keys for a given message from another user, indicate that in the timeline, rather than just saying "authenticity not guaranteed" * Apply suggestions from code review Co-authored-by: Florian Duros <florianduros@element.io> * Address review comments * Move E2ePadlock to shared-components * update snapshots * Revert "update snapshots" This reverts commit 751e31f9db901fda085143c98e5dffa3d2b4c099. * Revert "Move E2ePadlock to shared-components" This reverts commit 172ef9f70ab26fd36b0ac854379cfd3371d22c18. --------- Co-authored-by: Florian Duros <florianduros@element.io>
56 lines
2.2 KiB
TypeScript
56 lines
2.2 KiB
TypeScript
/*
|
|
Copyright 2026 Element Creations Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
import { render } from "jest-matrix-react";
|
|
import React from "react";
|
|
import { mocked } from "jest-mock";
|
|
import { type RoomMember, type RoomState } from "matrix-js-sdk/src/matrix";
|
|
|
|
import { E2eMessageSharedIcon } from "../../../../../../src/components/views/rooms/EventTile/E2eMessageSharedIcon.tsx";
|
|
import { createTestClient, mkStubRoom, withClientContextRenderOptions } from "../../../../../test-utils";
|
|
|
|
describe("E2eMessageSharedIcon", () => {
|
|
it("renders correctly for a known user", () => {
|
|
const mockClient = createTestClient();
|
|
const mockMember = { rawDisplayName: "Bob" } as RoomMember;
|
|
const mockState = {
|
|
getMember: (userId) => {
|
|
expect(userId).toEqual("@bob:example.com");
|
|
return mockMember;
|
|
},
|
|
} as RoomState;
|
|
const mockRoom = mkStubRoom("!roomId", undefined, mockClient, mockState);
|
|
mocked(mockClient.getRoom).mockImplementation((roomId) => {
|
|
expect(roomId).toEqual("!roomId");
|
|
return mockRoom;
|
|
});
|
|
|
|
const result = render(
|
|
<E2eMessageSharedIcon keyForwardingUserId="@bob:example.com" roomId="!roomId" />,
|
|
withClientContextRenderOptions(mockClient),
|
|
);
|
|
|
|
expect(result.container).toMatchSnapshot();
|
|
expect(result.container.firstChild).toHaveAccessibleName(
|
|
"Bob (@bob:example.com) shared this message since you were not in the room when it was sent.",
|
|
);
|
|
});
|
|
|
|
it("renders correctly for an unknown user", () => {
|
|
const mockClient = createTestClient();
|
|
const result = render(
|
|
<E2eMessageSharedIcon keyForwardingUserId="@bob:example.com" roomId="!roomId" />,
|
|
withClientContextRenderOptions(mockClient),
|
|
);
|
|
|
|
expect(result.container).toMatchSnapshot();
|
|
expect(result.container.firstChild).toHaveAccessibleName(
|
|
"@bob:example.com (@bob:example.com) shared this message since you were not in the room when it was sent.",
|
|
);
|
|
});
|
|
});
|