Playwright tests for resetting our identity
This commit is contained in:
@@ -288,6 +288,43 @@ test.describe("Login", () => {
|
|||||||
await expect(h1).toBeVisible();
|
await expect(h1).toBeVisible();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("Can reset identity to become verified", async ({ page, homeserver, request, credentials }) => {
|
||||||
|
// Log in
|
||||||
|
const res = await request.post(`${homeserver.baseUrl}/_matrix/client/v3/keys/device_signing/upload`, {
|
||||||
|
headers: { Authorization: `Bearer ${credentials.accessToken}` },
|
||||||
|
data: DEVICE_SIGNING_KEYS_BODY,
|
||||||
|
});
|
||||||
|
if (res.status() / 100 !== 2) {
|
||||||
|
console.log("Uploading dummy keys failed", await res.json());
|
||||||
|
}
|
||||||
|
expect(res.status() / 100).toEqual(2);
|
||||||
|
|
||||||
|
await page.goto("/");
|
||||||
|
await login(page, homeserver, credentials);
|
||||||
|
|
||||||
|
await expect(page.getByRole("heading", { name: "Verify this device", level: 1 })).toBeVisible();
|
||||||
|
|
||||||
|
// Start the reset process
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// First try cancelling and restarting
|
||||||
|
await page.getByRole("button", { name: "Cancel" }).click();
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// Then click outside the dialog and restart
|
||||||
|
await page.getByRole("link", { name: "Powered by Matrix" }).click({ force: true });
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// Finally we actually continue
|
||||||
|
await page.getByRole("button", { name: "Continue" }).click();
|
||||||
|
await page.getByPlaceholder("Password").fill(credentials.password);
|
||||||
|
await page.getByRole("button", { name: "Continue" }).click();
|
||||||
|
|
||||||
|
// We end up at the Home screen
|
||||||
|
await expect(page).toHaveURL(/\/#\/home$/, { timeout: 10000 });
|
||||||
|
await expect(page.getByRole("heading", { name: "Welcome Dave", exact: true })).toBeVisible();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -145,4 +145,36 @@ test.describe("Encryption tab", () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.describe("when encryption is not set up", () => {
|
||||||
|
test("'Verify this device' allows us to become verified", async ({
|
||||||
|
page,
|
||||||
|
user,
|
||||||
|
credentials,
|
||||||
|
app,
|
||||||
|
}, workerInfo) => {
|
||||||
|
const settings = await app.settings.openUserSettings("Encryption");
|
||||||
|
|
||||||
|
// Initially, our device is not verified
|
||||||
|
await expect(settings.getByRole("heading", { name: "Device not verified" })).toBeVisible();
|
||||||
|
|
||||||
|
// We will reset our identity
|
||||||
|
await settings.getByRole("button", { name: "Verify this device" }).click();
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// First try cancelling and restarting
|
||||||
|
await page.getByRole("button", { name: "Cancel" }).click();
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// Then click outside the dialog and restart
|
||||||
|
await page.locator("li").filter({ hasText: "Encryption" }).click({ force: true });
|
||||||
|
await page.getByRole("button", { name: "Proceed with reset" }).click();
|
||||||
|
|
||||||
|
// Finally we actually continue
|
||||||
|
await page.getByRole("button", { name: "Continue" }).click();
|
||||||
|
|
||||||
|
// Now we are verified, so we see the Key storage toggle
|
||||||
|
await expect(settings.getByRole("heading", { name: "Key storage" })).toBeVisible();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user