@@ -854,7 +854,9 @@ mod test {
854854 use uuid:: Uuid ;
855855
856856 use crate :: {
857- mas_writer:: { MasNewUser , MasNewUserPassword } ,
857+ mas_writer:: {
858+ MasNewEmailThreepid , MasNewUnsupportedThreepid , MasNewUser , MasNewUserPassword ,
859+ } ,
858860 LockedMasDatabase , MasWriter ,
859861 } ;
860862
@@ -1018,4 +1020,68 @@ mod test {
10181020
10191021 assert_db_snapshot ! ( & mut conn) ;
10201022 }
1023+
1024+ /// Tests writing a single user, with an e-mail address associated.
1025+ #[ sqlx:: test( migrator = "mas_storage_pg::MIGRATOR" ) ]
1026+ async fn test_write_user_with_email ( pool : PgPool ) {
1027+ let mut conn = pool. acquire ( ) . await . unwrap ( ) ;
1028+ let mut writer = make_mas_writer ( & pool, & mut conn) . await ;
1029+
1030+ writer
1031+ . write_users ( vec ! [ MasNewUser {
1032+ user_id: Uuid :: from_u128( 1u128 ) ,
1033+ username: "alice" . to_owned( ) ,
1034+ created_at: DateTime :: default ( ) ,
1035+ locked_at: None ,
1036+ can_request_admin: false ,
1037+ } ] )
1038+ . await
1039+ . expect ( "failed to write user" ) ;
1040+
1041+ writer
1042+ . write_email_threepids ( vec ! [ MasNewEmailThreepid {
1043+ user_email_id: Uuid :: from_u128( 2u128 ) ,
1044+ user_id: Uuid :: from_u128( 1u128 ) ,
1045+ email
: "[email protected] " . to_owned
( ) , 1046+ created_at: DateTime :: default ( ) ,
1047+ } ] )
1048+ . await
1049+ . expect ( "failed to write e-mail" ) ;
1050+
1051+ writer. finish ( ) . await . expect ( "failed to finish MasWriter" ) ;
1052+
1053+ assert_db_snapshot ! ( & mut conn) ;
1054+ }
1055+
1056+ /// Tests writing a single user, with a unsupported third-party ID associated.
1057+ #[ sqlx:: test( migrator = "mas_storage_pg::MIGRATOR" ) ]
1058+ async fn test_write_user_with_unsupported_threepid ( pool : PgPool ) {
1059+ let mut conn = pool. acquire ( ) . await . unwrap ( ) ;
1060+ let mut writer = make_mas_writer ( & pool, & mut conn) . await ;
1061+
1062+ writer
1063+ . write_users ( vec ! [ MasNewUser {
1064+ user_id: Uuid :: from_u128( 1u128 ) ,
1065+ username: "alice" . to_owned( ) ,
1066+ created_at: DateTime :: default ( ) ,
1067+ locked_at: None ,
1068+ can_request_admin: false ,
1069+ } ] )
1070+ . await
1071+ . expect ( "failed to write user" ) ;
1072+
1073+ writer
1074+ . write_unsupported_threepids ( vec ! [ MasNewUnsupportedThreepid {
1075+ user_id: Uuid :: from_u128( 1u128 ) ,
1076+ medium: "msisdn" . to_owned( ) ,
1077+ address: "441189998819991197253" . to_owned( ) ,
1078+ created_at: DateTime :: default ( ) ,
1079+ } ] )
1080+ . await
1081+ . expect ( "failed to write phone number (unsupported threepid)" ) ;
1082+
1083+ writer. finish ( ) . await . expect ( "failed to finish MasWriter" ) ;
1084+
1085+ assert_db_snapshot ! ( & mut conn) ;
1086+ }
10211087}
0 commit comments