@@ -13,6 +13,7 @@ import { selectHomeserver } from "../utils";
13
13
import { type Credentials , type HomeserverInstance } from "../../plugins/homeserver" ;
14
14
import { consentHomeserver } from "../../plugins/homeserver/synapse/consentHomeserver.ts" ;
15
15
import { isDendrite } from "../../plugins/homeserver/dendrite" ;
16
+ import { createBot } from "../crypto/utils.ts" ;
16
17
17
18
// This test requires fixed credentials for the device signing keys below to work
18
19
const username = "user1234" ;
@@ -258,6 +259,31 @@ test.describe("Login", () => {
258
259
259
260
await expect ( h1 . locator ( ".mx_CompleteSecurity_skip" ) ) . toHaveCount ( 0 ) ;
260
261
} ) ;
262
+
263
+ test ( "Continues to show verification prompt after cancelling device verification" , async ( {
264
+ page,
265
+ homeserver,
266
+ credentials,
267
+ } ) => {
268
+ // Create a different device which is cross-signed, meaning we need to verify this device
269
+ await createBot ( page , homeserver , credentials , true ) ;
270
+
271
+ // Load the page and see that we are asked to verify
272
+ await page . goto ( "/#/login" ) ;
273
+ await login ( page , homeserver , credentials ) ;
274
+ let h1 = page . getByRole ( "heading" , { name : "Verify this device" , level : 1 } ) ;
275
+ await expect ( h1 ) . toBeVisible ( ) ;
276
+
277
+ // Click "Verify with another device"
278
+ await page . getByRole ( "button" , { name : "Verify with another device" } ) . click ( ) ;
279
+
280
+ // Cancel the new dialog
281
+ await page . getByRole ( "button" , { name : "Close dialog" } ) . click ( ) ;
282
+
283
+ // Check that we are still being asked to verify
284
+ h1 = page . getByRole ( "heading" , { name : "Verify this device" , level : 1 } ) ;
285
+ await expect ( h1 ) . toBeVisible ( ) ;
286
+ } ) ;
261
287
} ) ;
262
288
} ) ;
263
289
} ) ;
0 commit comments