Replace `MatrixClient.isRoomEncrypted` by `MatrixClient.CryptoApi.isEncryptionEnabledInRoom` in `EventTile.tsx` (#28510)
* Replace `MatrixClient.isRoomEncrypted` by `MatrixClient.CryptoApi.isEncryptionEnabledInRoom` in `EventTile.tsx` * Use `roomContext.isRoomEncrypted`toger5/guest-link-room-access-prompt
parent
b87437d439
commit
6d8cbf39f5
|
@ -775,7 +775,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MatrixClientPeg.safeGet().isRoomEncrypted(ev.getRoomId()!)) {
|
if (this.context.isRoomEncrypted) {
|
||||||
// else if room is encrypted
|
// else if room is encrypted
|
||||||
// and event is being encrypted or is not_sent (Unknown Devices/Network Error)
|
// and event is being encrypted or is not_sent (Unknown Devices/Network Error)
|
||||||
if (ev.status === EventStatus.ENCRYPTING) {
|
if (ev.status === EventStatus.ENCRYPTING) {
|
||||||
|
|
|
@ -135,6 +135,7 @@ export function createTestClient(): MatrixClient {
|
||||||
loadSessionBackupPrivateKeyFromSecretStorage: jest.fn(),
|
loadSessionBackupPrivateKeyFromSecretStorage: jest.fn(),
|
||||||
storeSessionBackupPrivateKey: jest.fn(),
|
storeSessionBackupPrivateKey: jest.fn(),
|
||||||
getKeyBackupInfo: jest.fn().mockResolvedValue(null),
|
getKeyBackupInfo: jest.fn().mockResolvedValue(null),
|
||||||
|
getEncryptionInfoForEvent: jest.fn().mockResolvedValue(null),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
getPushActionsForEvent: jest.fn(),
|
getPushActionsForEvent: jest.fn(),
|
||||||
|
|
|
@ -67,7 +67,6 @@ describe("ForwardDialog", () => {
|
||||||
getAccountData: jest.fn().mockReturnValue(accountDataEvent),
|
getAccountData: jest.fn().mockReturnValue(accountDataEvent),
|
||||||
getPushActionsForEvent: jest.fn(),
|
getPushActionsForEvent: jest.fn(),
|
||||||
mxcUrlToHttp: jest.fn().mockReturnValue(""),
|
mxcUrlToHttp: jest.fn().mockReturnValue(""),
|
||||||
isRoomEncrypted: jest.fn().mockReturnValue(false),
|
|
||||||
getProfileInfo: jest.fn().mockResolvedValue({
|
getProfileInfo: jest.fn().mockResolvedValue({
|
||||||
displayname: "Alice",
|
displayname: "Alice",
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -71,9 +71,11 @@ describe("EventTile", () => {
|
||||||
function getComponent(
|
function getComponent(
|
||||||
overrides: Partial<EventTileProps> = {},
|
overrides: Partial<EventTileProps> = {},
|
||||||
renderingType: TimelineRenderingType = TimelineRenderingType.Room,
|
renderingType: TimelineRenderingType = TimelineRenderingType.Room,
|
||||||
|
roomContext: Partial<IRoomState> = {},
|
||||||
) {
|
) {
|
||||||
const context = getRoomContext(room, {
|
const context = getRoomContext(room, {
|
||||||
timelineRenderingType: renderingType,
|
timelineRenderingType: renderingType,
|
||||||
|
...roomContext,
|
||||||
});
|
});
|
||||||
return render(<WrappedEventTile roomContext={context} eventTilePropertyOverrides={overrides} />);
|
return render(<WrappedEventTile roomContext={context} eventTilePropertyOverrides={overrides} />);
|
||||||
}
|
}
|
||||||
|
@ -437,8 +439,6 @@ describe("EventTile", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should update the warning when the event is replaced with an unencrypted one", async () => {
|
it("should update the warning when the event is replaced with an unencrypted one", async () => {
|
||||||
jest.spyOn(client, "isRoomEncrypted").mockReturnValue(true);
|
|
||||||
|
|
||||||
// we start out with an event from the trusted device
|
// we start out with an event from the trusted device
|
||||||
mxEvent = await mkEncryptedMatrixEvent({
|
mxEvent = await mkEncryptedMatrixEvent({
|
||||||
plainContent: { msgtype: "m.text", body: "msg1" },
|
plainContent: { msgtype: "m.text", body: "msg1" },
|
||||||
|
@ -452,7 +452,7 @@ describe("EventTile", () => {
|
||||||
shieldReason: null,
|
shieldReason: null,
|
||||||
} as EventEncryptionInfo);
|
} as EventEncryptionInfo);
|
||||||
|
|
||||||
const roomContext = getRoomContext(room, {});
|
const roomContext = getRoomContext(room, { isRoomEncrypted: true });
|
||||||
const { container, rerender } = render(<WrappedEventTile roomContext={roomContext} />);
|
const { container, rerender } = render(<WrappedEventTile roomContext={roomContext} />);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
|
|
||||||
|
@ -581,4 +581,28 @@ describe("EventTile", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should display the not encrypted status for an unencrypted event when the room becomes encrypted", async () => {
|
||||||
|
jest.spyOn(client.getCrypto()!, "getEncryptionInfoForEvent").mockResolvedValue({
|
||||||
|
shieldColour: EventShieldColour.NONE,
|
||||||
|
shieldReason: null,
|
||||||
|
});
|
||||||
|
|
||||||
|
const { rerender } = getComponent();
|
||||||
|
await flushPromises();
|
||||||
|
// The room and the event are unencrypted, the tile should not show the not encrypted status
|
||||||
|
expect(screen.queryByText("Not encrypted")).toBeNull();
|
||||||
|
|
||||||
|
// The room is now encrypted
|
||||||
|
rerender(
|
||||||
|
<WrappedEventTile
|
||||||
|
roomContext={getRoomContext(room, {
|
||||||
|
isRoomEncrypted: true,
|
||||||
|
})}
|
||||||
|
/>,
|
||||||
|
);
|
||||||
|
|
||||||
|
// The event tile should now show the not encrypted status
|
||||||
|
await waitFor(() => expect(screen.getByText("Not encrypted")).toBeInTheDocument());
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue