@@ -1056,4 +1056,57 @@ describe("MatrixClient", function() {
10561056 } ) ;
10571057 } ) ;
10581058 } ) ;
1059+
1060+ describe ( "setPassword" , ( ) => {
1061+ const auth = { session : 'abcdef' , type : 'foo' } ;
1062+ const newPassword = 'newpassword' ;
1063+ const callback = ( ) => { } ;
1064+
1065+ const passwordTest = ( expectedRequestContent : any , expectedCallback ?: Function ) => {
1066+ const [ callback , method , path , queryParams , requestContent ] = client . http . authedRequest . mock . calls [ 0 ] ;
1067+ if ( expectedCallback ) {
1068+ expect ( callback ) . toBe ( expectedCallback ) ;
1069+ } else {
1070+ expect ( callback ) . toBeFalsy ( ) ;
1071+ }
1072+ expect ( method ) . toBe ( 'POST' ) ;
1073+ expect ( path ) . toEqual ( '/account/password' ) ;
1074+ expect ( queryParams ) . toBeFalsy ( ) ;
1075+ expect ( requestContent ) . toEqual ( expectedRequestContent ) ;
1076+ } ;
1077+
1078+ beforeEach ( ( ) => {
1079+ client . http . authedRequest . mockClear ( ) . mockResolvedValue ( { } ) ;
1080+ } ) ;
1081+
1082+ it ( "no logout_devices specified" , async ( ) => {
1083+ await client . setPassword ( auth , newPassword ) ;
1084+ passwordTest ( { auth, new_password : newPassword } ) ;
1085+ } ) ;
1086+
1087+ it ( "no logout_devices specified + callback" , async ( ) => {
1088+ await client . setPassword ( auth , newPassword , callback ) ;
1089+ passwordTest ( { auth, new_password : newPassword } , callback ) ;
1090+ } ) ;
1091+
1092+ it ( "overload logoutDevices=true" , async ( ) => {
1093+ await client . setPassword ( auth , newPassword , true ) ;
1094+ passwordTest ( { auth, new_password : newPassword , logout_devices : true } ) ;
1095+ } ) ;
1096+
1097+ it ( "overload logoutDevices=true + callback" , async ( ) => {
1098+ await client . setPassword ( auth , newPassword , true , callback ) ;
1099+ passwordTest ( { auth, new_password : newPassword , logout_devices : true } , callback ) ;
1100+ } ) ;
1101+
1102+ it ( "overload logoutDevices=false" , async ( ) => {
1103+ await client . setPassword ( auth , newPassword , false ) ;
1104+ passwordTest ( { auth, new_password : newPassword , logout_devices : false } ) ;
1105+ } ) ;
1106+
1107+ it ( "overload logoutDevices=false + callback" , async ( ) => {
1108+ await client . setPassword ( auth , newPassword , false , callback ) ;
1109+ passwordTest ( { auth, new_password : newPassword , logout_devices : false } , callback ) ;
1110+ } ) ;
1111+ } ) ;
10591112} ) ;
0 commit comments