Prevent user from accidentally triggering multiple identity resets (#29388)
* prevent user from accidentally triggering multiple identity resets * apply changes from review and update to latest design * Use a CSS class and compound variable * update snapshot * Update test/unit-tests/components/views/settings/encryption/ResetIdentityPanel-test.tsx --------- Co-authored-by: Richard van der Hoff <richard@matrix.org> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
|
||||
import React from "react";
|
||||
import { type MatrixClient } from "matrix-js-sdk/src/matrix";
|
||||
import { sleep, defer } from "matrix-js-sdk/src/utils";
|
||||
import { render, screen } from "jest-matrix-react";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
|
||||
@@ -30,7 +31,17 @@ describe("<ResetIdentityPanel />", () => {
|
||||
);
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
|
||||
await user.click(screen.getByRole("button", { name: "Continue" }));
|
||||
// We need to pause the reset so that we can check that it's providing
|
||||
// feedback to the user that something is happening.
|
||||
const { promise: resetEncryptionPromise, resolve: resolveResetEncryption } = defer();
|
||||
jest.spyOn(matrixClient.getCrypto()!, "resetEncryption").mockReturnValue(resetEncryptionPromise);
|
||||
|
||||
const continueButton = screen.getByRole("button", { name: "Continue" });
|
||||
await user.click(continueButton);
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
resolveResetEncryption!();
|
||||
await sleep(0);
|
||||
|
||||
expect(matrixClient.getCrypto()!.resetEncryption).toHaveBeenCalled();
|
||||
expect(onFinish).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user