set correct action for view device list button (#10979)
This commit is contained in:
parent
d0d9a36d07
commit
e326526c10
2 changed files with 39 additions and 2 deletions
|
@ -24,7 +24,6 @@ import defaultDispatcher from "../../../dispatcher/dispatcher";
|
|||
import { Action } from "../../../dispatcher/actions";
|
||||
import AccessibleButton from "../elements/AccessibleButton";
|
||||
import { OpenToTabPayload } from "../../../dispatcher/payloads/OpenToTabPayload";
|
||||
import { UserTab } from "../dialogs/UserTab";
|
||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||
import SetupEncryptionDialog from "../dialogs/security/SetupEncryptionDialog";
|
||||
import { SetupEncryptionStore } from "../../../stores/SetupEncryptionStore";
|
||||
|
@ -136,7 +135,7 @@ export const DecryptionFailureBar: React.FC<IProps> = ({ failures }) => {
|
|||
};
|
||||
|
||||
const onDeviceListClick = (): void => {
|
||||
const payload: OpenToTabPayload = { action: Action.ViewUserSettings, initialTabId: UserTab.Security };
|
||||
const payload: OpenToTabPayload = { action: Action.ViewUserDeviceSettings };
|
||||
defaultDispatcher.dispatch(payload);
|
||||
};
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@ import "@testing-library/jest-dom";
|
|||
|
||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||
import { DecryptionFailureBar } from "../../../../src/components/views/rooms/DecryptionFailureBar";
|
||||
import defaultDispatcher from "../../../../src/dispatcher/dispatcher";
|
||||
import { Action } from "../../../../src/dispatcher/actions";
|
||||
|
||||
type MockDevice = { deviceId: string };
|
||||
|
||||
|
@ -71,6 +73,7 @@ function getBar(wrapper: RenderResult) {
|
|||
describe("<DecryptionFailureBar />", () => {
|
||||
beforeEach(() => {
|
||||
jest.useFakeTimers();
|
||||
jest.spyOn(defaultDispatcher, "dispatch").mockRestore();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
|
@ -285,6 +288,41 @@ describe("<DecryptionFailureBar />", () => {
|
|||
|
||||
bar.unmount();
|
||||
});
|
||||
it("Displays button to review device list if we are verified", async () => {
|
||||
// stub so we dont have to deal with launching modals
|
||||
jest.spyOn(defaultDispatcher, "dispatch").mockImplementation(() => {});
|
||||
ourDevice = verifiedDevice1;
|
||||
allDevices = [verifiedDevice1, verifiedDevice2];
|
||||
|
||||
const bar = render(
|
||||
// @ts-ignore
|
||||
<MatrixClientContext.Provider value={mockClient}>
|
||||
<DecryptionFailureBar
|
||||
failures={[
|
||||
// @ts-ignore
|
||||
mockEvent1,
|
||||
// @ts-ignore
|
||||
mockEvent2,
|
||||
// @ts-ignore
|
||||
mockEvent3,
|
||||
]}
|
||||
/>
|
||||
,
|
||||
</MatrixClientContext.Provider>,
|
||||
);
|
||||
|
||||
await waitFor(() => expect(mockClient.isSecretStored).toHaveBeenCalled());
|
||||
|
||||
act(() => {
|
||||
jest.advanceTimersByTime(5000);
|
||||
});
|
||||
|
||||
fireEvent.click(screen.getByText("View your device list"));
|
||||
|
||||
expect(defaultDispatcher.dispatch).toHaveBeenCalledWith({ action: Action.ViewUserDeviceSettings });
|
||||
|
||||
bar.unmount();
|
||||
});
|
||||
|
||||
it("Does not display a button to send key requests if we are unverified", async () => {
|
||||
ourDevice = unverifiedDevice1;
|
||||
|
|
Loading…
Reference in a new issue