Allow reporting a room when rejecting an invite. (#29570)
* Add report room dialog button/dialog. * Update copy * fixup tests / lint * Fix title in test. * update snapshot * Add unit tests for dialog * lint * First pass at adding a report room on invite. * Use a single line input field for reason to avoid bumping the layout. * Fixups * Embed reason to make it clear on grouping * Revert accidental commit * lint * Add some playwright tests. * tweaks * Make ignored users list more accessible. * i18n * Fix sliding sync test. * Add unit test * Even more unit tests. * move test * Update to match designs. * remove console statements * fix css * tidy up * improve comments * fix css * updates
This commit is contained in:
+34
-2
@@ -6,7 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
|
||||
Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
import { render } from "jest-matrix-react";
|
||||
import React from "react";
|
||||
import React, { act } from "react";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
|
||||
import SecurityUserSettingsTab from "../../../../../../../src/components/views/settings/tabs/user/SecurityUserSettingsTab";
|
||||
import MatrixClientContext from "../../../../../../../src/contexts/MatrixClientContext";
|
||||
@@ -19,12 +20,16 @@ import {
|
||||
mockPlatformPeg,
|
||||
} from "../../../../../../test-utils";
|
||||
import { SDKContext, SdkContextClass } from "../../../../../../../src/contexts/SDKContext";
|
||||
import defaultDispatcher from "../../../../../../../src/dispatcher/dispatcher";
|
||||
|
||||
describe("<SecurityUserSettingsTab />", () => {
|
||||
const defaultProps = {
|
||||
closeSettingsFn: jest.fn(),
|
||||
};
|
||||
|
||||
const getIgnoredUsers = jest.fn();
|
||||
const setIgnoredUsers = jest.fn();
|
||||
|
||||
const userId = "@alice:server.org";
|
||||
const deviceId = "alices-device";
|
||||
const mockClient = getMockClientWithEventEmitter({
|
||||
@@ -33,7 +38,9 @@ describe("<SecurityUserSettingsTab />", () => {
|
||||
...mockClientMethodsDevice(deviceId),
|
||||
...mockClientMethodsCrypto(),
|
||||
getRooms: jest.fn().mockReturnValue([]),
|
||||
getIgnoredUsers: jest.fn(),
|
||||
getPushers: jest.fn().mockReturnValue([]),
|
||||
getIgnoredUsers,
|
||||
setIgnoredUsers,
|
||||
});
|
||||
|
||||
const sdkContext = new SdkContextClass();
|
||||
@@ -57,4 +64,29 @@ describe("<SecurityUserSettingsTab />", () => {
|
||||
|
||||
expect(container).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("renders ignored users", () => {
|
||||
getIgnoredUsers.mockReturnValue(["@bob:example.org"]);
|
||||
const { getByRole } = render(getComponent());
|
||||
const ignoredUsers = getByRole("list", { name: "Ignored users" });
|
||||
|
||||
expect(ignoredUsers).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("allows unignoring a user", async () => {
|
||||
getIgnoredUsers.mockReturnValue(["@bob:example.org"]);
|
||||
const { getByText, getByRole } = render(getComponent());
|
||||
await userEvent.click(getByRole("button", { name: "Unignore" }));
|
||||
expect(setIgnoredUsers).toHaveBeenCalledWith([]);
|
||||
await act(() => {
|
||||
getIgnoredUsers.mockReturnValue([]);
|
||||
defaultDispatcher.dispatch(
|
||||
{
|
||||
action: "ignore_state_changed",
|
||||
},
|
||||
true,
|
||||
);
|
||||
});
|
||||
expect(getByText("You have no ignored users.")).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user