-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Michael Telatynski <[email protected]>
- Loading branch information
Showing
1 changed file
with
31 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -56,54 +56,49 @@ test.describe("Key backup reset from elsewhere", () => { | |
test.use(masHomeserver); | ||
test.skip(isDendrite, "does not yet support MAS"); | ||
|
||
test( | ||
"Key backup is disabled when reset from elsewhere", | ||
async ({ page, mailhogClient, request, homeserver }) => { | ||
const testUsername = "alice"; | ||
const testPassword = "Pa$sW0rD!"; | ||
test("Key backup is disabled when reset from elsewhere", async ({ page, mailhogClient, request, homeserver }) => { | ||
const testUsername = "alice"; | ||
const testPassword = "Pa$sW0rD!"; | ||
|
||
// there's a delay before keys are uploaded so the error doesn't appear immediately: use a fake | ||
// clock so we can skip the delay | ||
await page.clock.install(); | ||
// there's a delay before keys are uploaded so the error doesn't appear immediately: use a fake | ||
// clock so we can skip the delay | ||
await page.clock.install(); | ||
|
||
await page.goto("/#/login"); | ||
await page.getByRole("button", { name: "Continue" }).click(); | ||
await registerAccountMas(page, mailhogClient, testUsername, "[email protected]", testPassword); | ||
await page.goto("/#/login"); | ||
await page.getByRole("button", { name: "Continue" }).click(); | ||
await registerAccountMas(page, mailhogClient, testUsername, "[email protected]", testPassword); | ||
|
||
await page.getByRole("button", { name: "Add room" }).click(); | ||
await page.getByRole("menuitem", { name: "New room" }).click(); | ||
await page.getByRole("textbox", { name: "Name" }).fill("test room"); | ||
await page.getByRole("button", { name: "Create room" }).click(); | ||
await page.getByRole("button", { name: "Add room" }).click(); | ||
await page.getByRole("menuitem", { name: "New room" }).click(); | ||
await page.getByRole("textbox", { name: "Name" }).fill("test room"); | ||
await page.getByRole("button", { name: "Create room" }).click(); | ||
|
||
// @ts-ignore - this runs in the browser scope where mxMatrixClientPeg is a thing. Here, it is not. | ||
const accessToken = await page.evaluate(() => mxMatrixClientPeg.get().getAccessToken()); | ||
// @ts-ignore - this runs in the browser scope where mxMatrixClientPeg is a thing. Here, it is not. | ||
const accessToken = await page.evaluate(() => mxMatrixClientPeg.get().getAccessToken()); | ||
|
||
const csAPI = new TestClientServerAPI(request, homeserver, accessToken); | ||
const csAPI = new TestClientServerAPI(request, homeserver, accessToken); | ||
|
||
const backupInfo = await csAPI.getCurrentBackupInfo(); | ||
const backupInfo = await csAPI.getCurrentBackupInfo(); | ||
|
||
await csAPI.deleteBackupVersion(backupInfo.version); | ||
await csAPI.deleteBackupVersion(backupInfo.version); | ||
|
||
await page.getByRole("textbox", { name: "Send an encrypted message…" }).fill("/discardsession"); | ||
await page.getByRole("button", { name: "Send message" }).click(); | ||
await page.getByRole("textbox", { name: "Send an encrypted message…" }).fill("/discardsession"); | ||
await page.getByRole("button", { name: "Send message" }).click(); | ||
|
||
await page | ||
.getByRole("textbox", { name: "Send an encrypted message…" }) | ||
.fill("Message with broken key backup"); | ||
await page.getByRole("button", { name: "Send message" }).click(); | ||
await page.getByRole("textbox", { name: "Send an encrypted message…" }).fill("Message with broken key backup"); | ||
await page.getByRole("button", { name: "Send message" }).click(); | ||
|
||
// Should be the message we sent plus the room creation event | ||
await expect(page.locator(".mx_EventTile")).toHaveCount(2); | ||
await expect( | ||
page.locator(".mx_RoomView_MessageList > .mx_EventTile_last .mx_EventTile_receiptSent"), | ||
).toBeVisible(); | ||
// Should be the message we sent plus the room creation event | ||
await expect(page.locator(".mx_EventTile")).toHaveCount(2); | ||
await expect( | ||
page.locator(".mx_RoomView_MessageList > .mx_EventTile_last .mx_EventTile_receiptSent"), | ||
).toBeVisible(); | ||
|
||
// Wait for it to try uploading the key | ||
await page.clock.fastForward(20000); | ||
// Wait for it to try uploading the key | ||
await page.clock.fastForward(20000); | ||
|
||
await expect(page.getByRole("heading", { level: 1, name: "New Recovery Method" })).toBeVisible(); | ||
}, | ||
); | ||
await expect(page.getByRole("heading", { level: 1, name: "New Recovery Method" })).toBeVisible(); | ||
}); | ||
}); | ||
|
||
test.describe("Backups", () => { | ||
|