From a5673f603ffe86d8c11f94c606acfc0d11a34d1c Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Thu, 27 Mar 2025 12:35:54 +0100 Subject: [PATCH] e2e test: use encryption tab in `enableKeyBackup` instead of security & settings tab (#29234) * test(e2e crypto): use encryption tab in `enableKeyBackup` instead of security & settings tab * test(e2e crypto): verify device before trying to enable key backup * doc: improve `enableKeyBackup` documentation --- playwright/e2e/crypto/crypto.spec.ts | 1 + playwright/e2e/crypto/utils.ts | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/playwright/e2e/crypto/crypto.spec.ts b/playwright/e2e/crypto/crypto.spec.ts index 2d294ff7c2..6adef5be60 100644 --- a/playwright/e2e/crypto/crypto.spec.ts +++ b/playwright/e2e/crypto/crypto.spec.ts @@ -162,6 +162,7 @@ test.describe("Cryptography", function () { } test("Can reset cross-signing keys", async ({ page, app, user: aliceCredentials }) => { + await app.client.bootstrapCrossSigning(aliceCredentials); const secretStorageKey = await enableKeyBackup(app); // Fetch the current cross-signing keys diff --git a/playwright/e2e/crypto/utils.ts b/playwright/e2e/crypto/utils.ts index 0030dc02d0..77f1b747a1 100644 --- a/playwright/e2e/crypto/utils.ts +++ b/playwright/e2e/crypto/utils.ts @@ -292,17 +292,28 @@ export async function doTwoWaySasVerification(page: Page, verifier: JSHandle { - await app.settings.openUserSettings("Security & Privacy"); - await app.page.getByRole("button", { name: "Set up Secure Backup" }).click(); + const encryptionTab = await app.settings.openUserSettings("Encryption"); - return await completeCreateSecretStorageDialog(app.page); + const keyStorageToggle = encryptionTab.getByRole("checkbox", { name: "Allow key storage" }); + if (!(await keyStorageToggle.isChecked())) { + await encryptionTab.getByRole("checkbox", { name: "Allow key storage" }).click(); + } + + await encryptionTab.getByRole("button", { name: "Set up recovery" }).click(); + await encryptionTab.getByRole("button", { name: "Continue" }).click(); + + const recoveryKey = await encryptionTab.getByTestId("recoveryKey").innerText(); + await encryptionTab.getByRole("button", { name: "Continue" }).click(); + await encryptionTab.getByRole("textbox").fill(recoveryKey); + await encryptionTab.getByRole("button", { name: "Finish set up" }).click(); + await app.settings.closeDialog(); + return recoveryKey; } /**