1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-07-31 13:44:28 +03:00

Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/cr/72

# Conflicts:
#	test/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap
This commit is contained in:
Michael Telatynski
2023-09-14 11:33:22 +01:00
104 changed files with 7047 additions and 6250 deletions

View File

@ -85,7 +85,6 @@ describe("<SendMessageComposer/>", () => {
msc3946ProcessDynamicPredecessor: false,
canAskToJoin: false,
promptAskToJoin: false,
knocked: false,
};
describe("createMessageContent", () => {
const permalinkCreator = jest.fn() as any;

View File

@ -22,7 +22,7 @@ exports[`RoomHeader does not show the face pile for DMs 1`] = `
>
<div
aria-level="1"
class="_font-body-lg-semibold_1g2sj_89 mx_RoomHeader_heading"
class="_font-body-lg-semibold_1jx6b_83 mx_RoomHeader_heading"
dir="auto"
role="heading"
title="!1:example.org"
@ -36,7 +36,7 @@ exports[`RoomHeader does not show the face pile for DMs 1`] = `
>
<button
aria-label="There's no one here to call"
class="_icon-button_1k9cw_17"
class="_icon-button_1segd_17"
data-state="closed"
disabled=""
style="--cpd-icon-button-size: 32px;"
@ -45,7 +45,7 @@ exports[`RoomHeader does not show the face pile for DMs 1`] = `
</button>
<button
aria-label="There's no one here to call"
class="_icon-button_1k9cw_17"
class="_icon-button_1segd_17"
data-state="closed"
disabled=""
style="--cpd-icon-button-size: 32px;"
@ -54,7 +54,7 @@ exports[`RoomHeader does not show the face pile for DMs 1`] = `
</button>
<button
aria-label="Threads"
class="_icon-button_1k9cw_17"
class="_icon-button_1segd_17"
data-state="closed"
style="--cpd-icon-button-size: 32px;"
>
@ -62,7 +62,7 @@ exports[`RoomHeader does not show the face pile for DMs 1`] = `
</button>
<button
aria-label="Notifications"
class="_icon-button_1k9cw_17"
class="_icon-button_1segd_17"
data-state="closed"
style="--cpd-icon-button-size: 32px;"
>

View File

@ -507,39 +507,25 @@ describe("RoomViewStore", function () {
});
});
describe("knocked()", () => {
it("returns false", () => {
expect(roomViewStore.knocked()).toBe(false);
});
it("returns true", async () => {
jest.spyOn(mockClient, "knockRoom").mockResolvedValue({ room_id: roomId });
await dispatchSubmitAskToJoin(roomId);
expect(roomViewStore.knocked()).toBe(true);
});
});
describe("Action.SubmitAskToJoin", () => {
const reason = "some reason";
beforeEach(async () => await dispatchPromptAskToJoin());
it("calls knockRoom(), sets askToJoin state to false and knocked state to true", async () => {
it("calls knockRoom() and sets promptAskToJoin state to false", async () => {
jest.spyOn(mockClient, "knockRoom").mockResolvedValue({ room_id: roomId });
await dispatchSubmitAskToJoin(roomId, reason);
expect(mockClient.knockRoom).toHaveBeenCalledWith(roomId, { reason, viaServers: [] });
expect(roomViewStore.promptAskToJoin()).toBe(false);
expect(roomViewStore.knocked()).toBe(true);
});
it("calls knockRoom(), sets askToJoin to false, keeps knocked state false and shows an error dialog", async () => {
it("calls knockRoom(), sets promptAskToJoin state to false and shows an error dialog", async () => {
const error = new MatrixError(undefined, 403);
jest.spyOn(mockClient, "knockRoom").mockRejectedValue(error);
await dispatchSubmitAskToJoin(roomId, reason);
expect(mockClient.knockRoom).toHaveBeenCalledWith(roomId, { reason, viaServers: [] });
expect(roomViewStore.promptAskToJoin()).toBe(false);
expect(roomViewStore.knocked()).toBe(false);
expect(Modal.createDialog).toHaveBeenCalledWith(ErrorDialog, {
description: "You need an invite to access this room.",
title: "Failed to join",
@ -550,6 +536,7 @@ describe("RoomViewStore", function () {
const error = new MatrixError();
jest.spyOn(mockClient, "knockRoom").mockRejectedValue(error);
await dispatchSubmitAskToJoin(roomId);
expect(Modal.createDialog).toHaveBeenCalledWith(ErrorDialog, {
description: error.message,
title: "Failed to join",
@ -563,21 +550,19 @@ describe("RoomViewStore", function () {
await dispatchSubmitAskToJoin(roomId);
});
it("calls leave() and sets knocked state to false", async () => {
it("calls leave()", async () => {
jest.spyOn(mockClient, "leave").mockResolvedValue({});
await dispatchCancelAskToJoin(roomId);
expect(mockClient.leave).toHaveBeenCalledWith(roomId);
expect(roomViewStore.knocked()).toBe(false);
});
it("calls leave(), keeps knocked state true and shows an error dialog", async () => {
it("calls leave() and shows an error dialog", async () => {
const error = new MatrixError();
jest.spyOn(mockClient, "leave").mockRejectedValue(error);
await dispatchCancelAskToJoin(roomId);
expect(mockClient.leave).toHaveBeenCalledWith(roomId);
expect(roomViewStore.knocked()).toBe(true);
expect(Modal.createDialog).toHaveBeenCalledWith(ErrorDialog, {
description: error.message,
title: "Failed to cancel",

View File

@ -90,7 +90,6 @@ export function getRoomContext(room: Room, override: Partial<IRoomState>): IRoom
msc3946ProcessDynamicPredecessor: false,
canAskToJoin: false,
promptAskToJoin: false,
knocked: false,
...override,
};