@@ -25,7 +25,11 @@ import {
2525} from "matrix-js-sdk/src/crypto-api" ;
2626import { type CryptoSessionStateChange } from "@matrix-org/analytics-events/types/typescript/CryptoSessionStateChange" ;
2727
28- import { DeviceListener , BACKUP_DISABLED_ACCOUNT_DATA_KEY } from "../../src/device-listener" ;
28+ import {
29+ DeviceListener ,
30+ ACCOUNT_DATA_KEY_M_KEY_BACKUP ,
31+ ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE ,
32+ } from "../../src/device-listener" ;
2933import { MatrixClientPeg } from "../../src/MatrixClientPeg" ;
3034import * as SetupEncryptionToast from "../../src/toasts/SetupEncryptionToast" ;
3135import * as UnverifiedSessionToast from "../../src/toasts/UnverifiedSessionToast" ;
@@ -430,7 +434,12 @@ describe("DeviceListener", () => {
430434 mockCrypto ! . getSecretStorageStatus . mockResolvedValue ( readySecretStorageStatus ) ;
431435 mockCrypto ! . getSessionBackupPrivateKey . mockResolvedValue ( null ) ;
432436 mockClient . getAccountDataFromServer . mockImplementation ( ( eventType ) =>
433- eventType === BACKUP_DISABLED_ACCOUNT_DATA_KEY ? ( { disabled : true } as any ) : null ,
437+ eventType === ACCOUNT_DATA_KEY_M_KEY_BACKUP ? ( { enabled : false } as any ) : null ,
438+ ) ;
439+ mockClient . getAccountDataFromServer . mockImplementation ( ( eventType ) =>
440+ eventType === ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE
441+ ? ( { disabled : true } as any )
442+ : null ,
434443 ) ;
435444
436445 await createAndStart ( ) ;
@@ -537,6 +546,10 @@ describe("DeviceListener", () => {
537546 expect ( mockClient . setAccountData ) . toHaveBeenCalledWith ( "m.org.matrix.custom.backup_disabled" , {
538547 disabled : true ,
539548 } ) ;
549+
550+ expect ( mockClient . setAccountData ) . toHaveBeenCalledWith ( "m.key_backup" , {
551+ enabled : false ,
552+ } ) ;
540553 } ) ;
541554
542555 it ( "sets the recovery account data when we call recordRecoveryDisabled" , async ( ) => {
@@ -568,7 +581,7 @@ describe("DeviceListener", () => {
568581
569582 it ( "shows the 'Turn on key storage' toast if we never explicitly turned off key storage" , async ( ) => {
570583 // Given key backup is off but the account data saying we turned it off is not set
571- // (m.org.matrix.custom.backup_disabled)
584+ // (m.key_backup or m. org.matrix.custom.backup_disabled)
572585 mockClient . getAccountData . mockReturnValue ( undefined ) ;
573586
574587 // When we launch the DeviceListener
@@ -581,11 +594,16 @@ describe("DeviceListener", () => {
581594 it ( "shows the 'Turn on key storage' toast if we turned on key storage" , async ( ) => {
582595 // Given key backup is off but the account data says we turned it on (this should not happen - the
583596 // account data should only be updated if we turn on key storage)
584- mockClient . getAccountData . mockImplementation ( ( eventType ) =>
585- eventType === BACKUP_DISABLED_ACCOUNT_DATA_KEY
586- ? new MatrixEvent ( { content : { disabled : false } } )
587- : undefined ,
588- ) ;
597+ mockClient . getAccountData . mockImplementation ( ( eventType ) => {
598+ switch ( eventType ) {
599+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP :
600+ return new MatrixEvent ( { content : { enabled : true } } ) ;
601+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE :
602+ return new MatrixEvent ( { content : { disabled : false } } ) ;
603+ default :
604+ return undefined ;
605+ }
606+ } ) ;
589607
590608 // When we launch the DeviceListener
591609 await createAndStart ( ) ;
@@ -596,9 +614,16 @@ describe("DeviceListener", () => {
596614
597615 it ( "does not show the 'Turn on key storage' toast if we turned off key storage" , async ( ) => {
598616 // Given key backup is off but the account data saying we turned it off is set
599- mockClient . getAccountDataFromServer . mockImplementation ( ( eventType ) =>
600- eventType === BACKUP_DISABLED_ACCOUNT_DATA_KEY ? ( { disabled : true } as any ) : null ,
601- ) ;
617+ mockClient . getAccountDataFromServer . mockImplementation ( ( eventType ) => {
618+ switch ( eventType ) {
619+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP :
620+ return new MatrixEvent ( { content : { enabled : false } } ) ;
621+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE :
622+ return new MatrixEvent ( { content : { disabled : true } } ) ;
623+ default :
624+ return undefined ;
625+ }
626+ } ) ;
602627
603628 // When we launch the DeviceListener
604629 await createAndStart ( ) ;
@@ -627,11 +652,16 @@ describe("DeviceListener", () => {
627652
628653 it ( "does not show the 'Turn on key storage' toast if we turned on key storage" , async ( ) => {
629654 // Given key backup is on and the account data says we turned it on
630- mockClient . getAccountData . mockImplementation ( ( eventType ) =>
631- eventType === BACKUP_DISABLED_ACCOUNT_DATA_KEY
632- ? new MatrixEvent ( { content : { disabled : false } } )
633- : undefined ,
634- ) ;
655+ mockClient . getAccountData . mockImplementation ( ( eventType ) => {
656+ switch ( eventType ) {
657+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP :
658+ return new MatrixEvent ( { content : { enabled : true } } ) ;
659+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE :
660+ return new MatrixEvent ( { content : { disabled : false } } ) ;
661+ default :
662+ return undefined ;
663+ }
664+ } ) ;
635665
636666 // When we launch the DeviceListener
637667 await createAndStart ( ) ;
@@ -643,11 +673,16 @@ describe("DeviceListener", () => {
643673 it ( "does not show the 'Turn on key storage' toast if we turned off key storage" , async ( ) => {
644674 // Given key backup is on but the account data saying we turned it off is set (this should never
645675 // happen - it should only be set when we turn off key storage or dismiss the toast)
646- mockClient . getAccountData . mockImplementation ( ( eventType ) =>
647- eventType === BACKUP_DISABLED_ACCOUNT_DATA_KEY
648- ? new MatrixEvent ( { content : { disabled : true } } )
649- : undefined ,
650- ) ;
676+ mockClient . getAccountData . mockImplementation ( ( eventType ) => {
677+ switch ( eventType ) {
678+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP :
679+ return new MatrixEvent ( { content : { enabled : false } } ) ;
680+ case ACCOUNT_DATA_KEY_M_KEY_BACKUP_DISABLED_UNSTABLE :
681+ return new MatrixEvent ( { content : { disabled : true } } ) ;
682+ default :
683+ return undefined ;
684+ }
685+ } ) ;
651686
652687 // When we launch the DeviceListener
653688 await createAndStart ( ) ;
@@ -1195,10 +1230,16 @@ describe("DeviceListener", () => {
11951230
11961231 it ( "does not show the 'set up recovery' toast if the user has chosen to disable key storage" , async ( ) => {
11971232 mockClient ! . getAccountData . mockImplementation ( ( k : string ) => {
1198- if ( k === "m.org.matrix.custom.backup_disabled" ) {
1199- return new MatrixEvent ( { content : { disabled : true } } ) ;
1233+ switch ( k ) {
1234+ case "m.org.matrix.custom.backup_disabled" :
1235+ return new MatrixEvent ( { content : { disabled : true } } ) ;
1236+
1237+ case "m.key_backup" :
1238+ return new MatrixEvent ( { content : { enabled : false } } ) ;
1239+
1240+ default :
1241+ return undefined ;
12001242 }
1201- return undefined ;
12021243 } ) ;
12031244 await createAndStart ( ) ;
12041245
0 commit comments