diff --git a/src/toasts/SetupEncryptionToast.ts b/src/toasts/SetupEncryptionToast.ts index f4aef8881f..3a202059bc 100644 --- a/src/toasts/SetupEncryptionToast.ts +++ b/src/toasts/SetupEncryptionToast.ts @@ -197,7 +197,8 @@ export const showToast = (kind: Kind): void => { deviceListener.dismissEncryptionSetup(); break; } - case Kind.KEY_STORAGE_OUT_OF_SYNC: { + case Kind.KEY_STORAGE_OUT_OF_SYNC: + case Kind.KEY_STORAGE_OUT_OF_SYNC_STORE: { // Open the user settings dialog to the encryption tab and start the flow to reset encryption const payload: OpenToTabPayload = { action: Action.ViewUserSettings, @@ -207,16 +208,6 @@ export const showToast = (kind: Kind): void => { defaultDispatcher.dispatch(payload); break; } - case Kind.KEY_STORAGE_OUT_OF_SYNC_STORE: { - // Open the user settings dialog to the encryption tab and start the flow to reset 4S - const payload: OpenToTabPayload = { - action: Action.ViewUserSettings, - initialTabId: UserTab.Encryption, - props: { initialEncryptionState: "change_recovery_key" }, - }; - defaultDispatcher.dispatch(payload); - break; - } case Kind.TURN_ON_KEY_STORAGE: { // The user clicked "Dismiss": offer them "Are you sure?" const modal = Modal.createDialog( diff --git a/test/unit-tests/toasts/SetupEncryptionToast-test.tsx b/test/unit-tests/toasts/SetupEncryptionToast-test.tsx index 7ebd9baeae..92c2c0487a 100644 --- a/test/unit-tests/toasts/SetupEncryptionToast-test.tsx +++ b/test/unit-tests/toasts/SetupEncryptionToast-test.tsx @@ -6,7 +6,7 @@ Please see LICENSE files in the repository root for full details. */ import React from "react"; -import { render, screen } from "jest-matrix-react"; +import { act, render, screen } from "jest-matrix-react"; import userEvent from "@testing-library/user-event"; import * as SecurityManager from "../../../src/SecurityManager"; @@ -31,7 +31,7 @@ describe("SetupEncryptionToast", () => { describe("Set up recovery", () => { it("should render the toast", async () => { - showToast(Kind.SET_UP_RECOVERY); + act(() => showToast(Kind.SET_UP_RECOVERY)); expect(await screen.findByRole("heading", { name: "Set up recovery" })).toBeInTheDocument(); }); @@ -40,7 +40,7 @@ describe("SetupEncryptionToast", () => { jest.spyOn(DeviceListener.sharedInstance(), "recordRecoveryDisabled"); jest.spyOn(DeviceListener.sharedInstance(), "dismissEncryptionSetup"); - showToast(Kind.SET_UP_RECOVERY); + act(() => showToast(Kind.SET_UP_RECOVERY)); const user = userEvent.setup(); await user.click(await screen.findByRole("button", { name: "Dismiss" })); @@ -52,13 +52,13 @@ describe("SetupEncryptionToast", () => { describe("Key storage out of sync (retrieve secrets)", () => { it("should render the toast", async () => { - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC)); await expect(screen.findByText("Your key storage is out of sync.")).resolves.toBeInTheDocument(); }); it("should open settings to the reset flow when 'forgot recovery key' clicked", async () => { - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC)); const user = userEvent.setup(); await user.click(await screen.findByText("Forgot recovery key?")); @@ -75,7 +75,7 @@ describe("SetupEncryptionToast", () => { throw new Error("Something went wrong while recovering!"); }); - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC)); const user = userEvent.setup(); await user.click(await screen.findByText("Enter recovery key")); @@ -88,15 +88,15 @@ describe("SetupEncryptionToast", () => { }); }); - describe("Key storage out of sync (store secrets)", () => { + describe("Key storage out of sync (secrets are missing from 4S)", () => { it("should render the toast", async () => { - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE)); await expect(screen.findByText("Your key storage is out of sync.")).resolves.toBeInTheDocument(); }); it("should open settings to the reset flow when 'forgot recovery key' clicked", async () => { - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE)); const user = userEvent.setup(); await user.click(await screen.findByText("Forgot recovery key?")); @@ -104,7 +104,7 @@ describe("SetupEncryptionToast", () => { expect(dis.dispatch).toHaveBeenCalledWith({ action: "view_user_settings", initialTabId: "USER_ENCRYPTION_TAB", - props: { initialEncryptionState: "change_recovery_key" }, + props: { initialEncryptionState: "reset_identity_forgot" }, }); }); @@ -113,7 +113,7 @@ describe("SetupEncryptionToast", () => { throw new Error("Something went wrong while recovering!"); }); - showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE); + act(() => showToast(Kind.KEY_STORAGE_OUT_OF_SYNC_STORE)); const user = userEvent.setup(); await user.click(await screen.findByText("Enter recovery key")); @@ -128,7 +128,7 @@ describe("SetupEncryptionToast", () => { describe("Turn on key storage", () => { it("should render the toast", async () => { - showToast(Kind.TURN_ON_KEY_STORAGE); + act(() => showToast(Kind.TURN_ON_KEY_STORAGE)); await expect(screen.findByText("Turn on key storage")).resolves.toBeInTheDocument(); await expect(screen.findByRole("button", { name: "Dismiss" })).resolves.toBeInTheDocument(); @@ -138,7 +138,7 @@ describe("SetupEncryptionToast", () => { it("should open settings to the Encryption tab when 'Continue' clicked", async () => { jest.spyOn(DeviceListener.sharedInstance(), "recordKeyBackupDisabled"); - showToast(Kind.TURN_ON_KEY_STORAGE); + act(() => showToast(Kind.TURN_ON_KEY_STORAGE)); const user = userEvent.setup(); await user.click(await screen.findByRole("button", { name: "Continue" })); @@ -160,7 +160,7 @@ describe("SetupEncryptionToast", () => { }); // When we show the toast, and click Dismiss - showToast(Kind.TURN_ON_KEY_STORAGE); + act(() => showToast(Kind.TURN_ON_KEY_STORAGE)); const user = userEvent.setup(); await user.click(await screen.findByRole("button", { name: "Dismiss" }));