-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replace
Matrix.getKeyBackupEnabled
by `MatrixClient.CryptoApi.getAc…
…tiveSessionBackupVersion` (#28225) * Migrating deprecated sync `MatrixClient.getKeyBackupEnabled` to async `MatrixClient.CryptoApi.getActiveSessionBackupVersion` in `NewRecoveryMethodDialog`. Rewrite `NewRecoveryMethodDialog` into a functional component to make it easier to handle the new async method. * Migrating deprecated sync `MatrixClient.getKeyBackupEnabled` to async `MatrixClient.CryptoApi.getActiveSessionBackupVersion` in `MatrixChat`.
- Loading branch information
1 parent
85d2bf3
commit 1bb482f
Showing
6 changed files
with
312 additions
and
72 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
test/unit-tests/async-components/dialogs/security/NewRecoveryMethodDialog-test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
/* | ||
* Copyright 2024 New Vector Ltd. | ||
* | ||
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only | ||
* Please see LICENSE files in the repository root for full details. | ||
*/ | ||
|
||
import React from "react"; | ||
import { MatrixClient } from "matrix-js-sdk/src/matrix"; | ||
import { render, screen } from "jest-matrix-react"; | ||
import { waitFor } from "@testing-library/dom"; | ||
import userEvent from "@testing-library/user-event"; | ||
import { act } from "@testing-library/react-hooks/dom"; | ||
|
||
import NewRecoveryMethodDialog from "../../../../../src/async-components/views/dialogs/security/NewRecoveryMethodDialog"; | ||
import { createTestClient } from "../../../../test-utils"; | ||
import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext.tsx"; | ||
import dis from "../../../../../src/dispatcher/dispatcher.ts"; | ||
import { Action } from "../../../../../src/dispatcher/actions.ts"; | ||
import Modal from "../../../../../src/Modal.tsx"; | ||
|
||
describe("<NewRecoveryMethodDialog />", () => { | ||
let matrixClient: MatrixClient; | ||
beforeEach(() => { | ||
matrixClient = createTestClient(); | ||
jest.spyOn(dis, "fire"); | ||
jest.spyOn(Modal, "createDialog"); | ||
}); | ||
|
||
afterEach(() => { | ||
jest.restoreAllMocks(); | ||
}); | ||
|
||
function renderComponent(onFinished: () => void = jest.fn()) { | ||
return render( | ||
<MatrixClientContext.Provider value={matrixClient}> | ||
<NewRecoveryMethodDialog onFinished={onFinished} /> | ||
</MatrixClientContext.Provider>, | ||
); | ||
} | ||
|
||
test("when cancel is clicked", async () => { | ||
const onFinished = jest.fn(); | ||
act(() => { | ||
renderComponent(onFinished); | ||
}); | ||
|
||
await userEvent.click(screen.getByRole("button", { name: "Go to Settings" })); | ||
expect(onFinished).toHaveBeenCalled(); | ||
expect(dis.fire).toHaveBeenCalledWith(Action.ViewUserSettings); | ||
}); | ||
|
||
test("when key backup is enabled", async () => { | ||
jest.spyOn(matrixClient.getCrypto()!, "getActiveSessionBackupVersion").mockResolvedValue("version"); | ||
|
||
const onFinished = jest.fn(); | ||
|
||
await act(async () => { | ||
const { asFragment } = renderComponent(onFinished); | ||
await waitFor(() => | ||
expect( | ||
screen.getByText("This session is encrypting history using the new recovery method."), | ||
).toBeInTheDocument(), | ||
); | ||
expect(asFragment()).toMatchSnapshot(); | ||
}); | ||
|
||
await userEvent.click(screen.getByRole("button", { name: "Set up Secure Messages" })); | ||
expect(onFinished).toHaveBeenCalled(); | ||
}); | ||
|
||
test("when key backup is disabled", async () => { | ||
const onFinished = jest.fn(); | ||
|
||
const { asFragment } = renderComponent(onFinished); | ||
expect(asFragment()).toMatchSnapshot(); | ||
|
||
await userEvent.click(screen.getByRole("button", { name: "Set up Secure Messages" })); | ||
await waitFor(() => expect(Modal.createDialog).toHaveBeenCalled()); | ||
}); | ||
}); |
Oops, something went wrong.