Skip to content

Commit 57f4c28

Browse files
committed
Add a test for #29882, which is fixed by matrix-js-sdk#5016
1 parent 479b451 commit 57f4c28

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

playwright/e2e/crypto/device-verification.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,30 @@ test.describe("Device verification", { tag: "@no-webkit" }, () => {
201201
await enterRecoveryKeyAndCheckVerified(page, app, recoveryKey);
202202
});
203203

204+
test("After cancelling verify with another device, I can try again #29882", async ({ page, app, credentials }) => {
205+
// Regression test for https://github.com/element-hq/element-web/issues/29882
206+
207+
// Log in without verifying
208+
await logIntoElement(page, credentials);
209+
const authPage = page.locator(".mx_AuthPage");
210+
await authPage.getByRole("button", { name: "Skip verification for now" }).click();
211+
await authPage.getByRole("button", { name: "I'll verify later" }).click();
212+
await page.waitForSelector(".mx_MatrixChat");
213+
214+
// Start to verify with "Use another device" but cancel
215+
const settings = await app.settings.openUserSettings("Encryption");
216+
await settings.getByRole("button", { name: "Verify this device" }).click();
217+
await page.getByRole("button", { name: "Use another device" }).click();
218+
await page.locator("#mx_Dialog_Container").getByRole("button", { name: "Close dialog" }).click();
219+
220+
// Start again
221+
await settings.getByRole("button", { name: "Verify this device" }).click();
222+
223+
// We should be offered to use another device again.
224+
// (In the bug, we were immediately told that verification has been cancelled.)
225+
await expect(page.getByRole("button", { name: "Use another device" })).toBeVisible();
226+
});
227+
204228
/** Helper for the three tests above which verify by recovery key */
205229
async function enterRecoveryKeyAndCheckVerified(page: Page, app: ElementAppPage, recoveryKey: string) {
206230
await page.getByRole("button", { name: "Use recovery key" }).click();

0 commit comments

Comments
 (0)