/* * Copyright 2024 New Vector Ltd. * * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial * Please see LICENSE files in the repository root for full details. */ import React from "react"; import { Device, MatrixClient, User } from "matrix-js-sdk/src/matrix"; import { render, screen } from "jest-matrix-react"; import { stubClient } from "../../../../test-utils"; import UntrustedDeviceDialog from "../../../../../src/components/views/dialogs/UntrustedDeviceDialog.tsx"; describe("", () => { let client: MatrixClient; let user: User; let device: Device; const onFinished = jest.fn(); beforeEach(() => { client = stubClient(); user = User.createUser("@alice:example.org", client); user.setDisplayName("Alice"); device = new Device({ deviceId: "device_id", userId: user.userId, algorithms: [], keys: new Map() }); }); afterEach(() => { onFinished.mockReset(); }); function renderComponent() { return render(); } it("should display the dialog for the device of another user", () => { const { asFragment } = renderComponent(); expect(asFragment()).toMatchSnapshot(); }); it("should display the dialog for the device of the current user", () => { jest.spyOn(client, "getUserId").mockReturnValue(user.userId); const { asFragment } = renderComponent(); expect(asFragment()).toMatchSnapshot(); }); it("should call onFinished without parameter when Done is clicked", () => { renderComponent(); screen.getByRole("button", { name: "Done" }).click(); expect(onFinished).toHaveBeenCalledWith(); }); it("should call onFinished with sas when Interactively verify by emoji is clicked", () => { renderComponent(); screen.getByRole("button", { name: "Interactively verify by emoji" }).click(); expect(onFinished).toHaveBeenCalledWith("sas"); }); });