Ensure the incoming verification request appears above the please verify prompt (#32931)
This commit is contained in:
@@ -270,10 +270,9 @@ test.describe("Device verification", { tag: "@no-webkit" }, () => {
|
|||||||
await checkDeviceIsConnectedKeyBackup(app, expectedBackupVersion, true);
|
await checkDeviceIsConnectedKeyBackup(app, expectedBackupVersion, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
test("Handle incoming verification request with SAS", async ({ page, credentials, homeserver, toasts }) => {
|
test("Handle incoming verification request with SAS", async ({ page, credentials, homeserver, toasts, app }) => {
|
||||||
|
/* Log in but don't verify the device */
|
||||||
await logIntoElement(page, credentials);
|
await logIntoElement(page, credentials);
|
||||||
|
|
||||||
/* Dismiss "Verify this device" */
|
|
||||||
const authPage = page.locator(".mx_AuthPage");
|
const authPage = page.locator(".mx_AuthPage");
|
||||||
await authPage.getByRole("button", { name: "Skip verification for now" }).click();
|
await authPage.getByRole("button", { name: "Skip verification for now" }).click();
|
||||||
await authPage.getByRole("button", { name: "I'll verify later" }).click();
|
await authPage.getByRole("button", { name: "I'll verify later" }).click();
|
||||||
@@ -281,6 +280,17 @@ test.describe("Device verification", { tag: "@no-webkit" }, () => {
|
|||||||
await page.waitForSelector(".mx_MatrixChat");
|
await page.waitForSelector(".mx_MatrixChat");
|
||||||
const elementDeviceId = await page.evaluate(() => window.mxMatrixClientPeg.get().getDeviceId());
|
const elementDeviceId = await page.evaluate(() => window.mxMatrixClientPeg.get().getDeviceId());
|
||||||
|
|
||||||
|
/* Create an encrypted room so the "Verify this device" toast appears */
|
||||||
|
await app.client.createRoom({
|
||||||
|
initial_state: [
|
||||||
|
{
|
||||||
|
type: "m.room.encryption",
|
||||||
|
state_key: "",
|
||||||
|
content: { algorithm: "m.megolm.v1.aes-sha2" },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
/* Now initiate a verification request from the *bot* device. */
|
/* Now initiate a verification request from the *bot* device. */
|
||||||
const botVerificationRequest = await aliceBotClient.evaluateHandle(
|
const botVerificationRequest = await aliceBotClient.evaluateHandle(
|
||||||
async (client, { userId, deviceId }) => {
|
async (client, { userId, deviceId }) => {
|
||||||
|
|||||||
@@ -365,7 +365,12 @@ export const showToast = (state: DeviceStateForToast): void => {
|
|||||||
overrideWidth: state === "key_storage_out_of_sync" ? "366px" : undefined,
|
overrideWidth: state === "key_storage_out_of_sync" ? "366px" : undefined,
|
||||||
},
|
},
|
||||||
component: GenericToast,
|
component: GenericToast,
|
||||||
priority: state === "verify_this_session" ? 95 : 40,
|
// verify_this_session is more important than most toasts, but
|
||||||
|
// needs to appear below an incoming verification request, so we can fix
|
||||||
|
// the problem by accepting it.
|
||||||
|
//
|
||||||
|
// Other states are less urgent.
|
||||||
|
priority: state === "verify_this_session" ? 85 : 40,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user