@@ -30,7 +30,6 @@ import (
30
30
31
31
"firebase.google.com/go/v4/auth"
32
32
"firebase.google.com/go/v4/auth/hash"
33
- "github.com/google/go-cmp/cmp"
34
33
"google.golang.org/api/iterator"
35
34
)
36
35
@@ -461,6 +460,7 @@ func TestCreateUserMFA(t *testing.T) {
461
460
PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
462
461
PhoneNumber : "+11234567890" ,
463
462
},
463
+ PhoneNumber : "+11234567890" ,
464
464
EnrollmentTimestamp : user .MultiFactor .EnrolledFactors [0 ].EnrollmentTimestamp ,
465
465
},
466
466
{
@@ -470,6 +470,7 @@ func TestCreateUserMFA(t *testing.T) {
470
470
PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
471
471
PhoneNumber : "+19876543210" ,
472
472
},
473
+ PhoneNumber : "+19876543210" ,
473
474
EnrollmentTimestamp : user .MultiFactor .EnrolledFactors [1 ].EnrollmentTimestamp ,
474
475
},
475
476
}
@@ -489,7 +490,6 @@ func TestCreateUserMFA(t *testing.T) {
489
490
},
490
491
}
491
492
if ! reflect .DeepEqual (* user , want ) {
492
- fmt .Println (cmp .Diff (* user , want ))
493
493
t .Errorf ("CreateUser() = %#v; want = %#v" , * user , want )
494
494
}
495
495
}
@@ -730,6 +730,115 @@ func TestUpdateUser(t *testing.T) {
730
730
})
731
731
}
732
732
733
+ func TestUpdateUserMFA (t * testing.T ) {
734
+ // Creates a new user for testing purposes. The user's uid will be
735
+ // '$name_$tenRandomChars' and email will be
736
+
737
+ createTestUserWithMFA := func (name string ) * auth.UserRecord {
738
+ // TODO(rsgowman: This function could usefully be employed throughout
739
+ // this file.
740
+ tenRandomChars := generateRandomAlphaNumericString (10 )
741
+ userRecord , err := client .CreateUser (context .Background (),
742
+ (& auth.UserToCreate {}).
743
+ Email (name + "_" + tenRandomChars + "@example.com" ).
744
+ EmailVerified (true ).
745
+ MFASettings (auth.MultiFactorSettings {
746
+ EnrolledFactors : []* auth.MultiFactorInfo {
747
+ {
748
+ PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
749
+ PhoneNumber : "+11234567890" ,
750
+ },
751
+ DisplayName : "Phone Number active" ,
752
+ FactorID : "phone" ,
753
+ },
754
+ {
755
+ PhoneNumber : "+19876543210" ,
756
+ DisplayName : "Phone Number deprecated" ,
757
+ FactorID : "phone" ,
758
+ },
759
+ },
760
+ }),
761
+ )
762
+ if err != nil {
763
+ t .Fatal (err )
764
+ }
765
+ return userRecord
766
+ }
767
+ // Create a test user with MFA settings for testing
768
+ user := createTestUserWithMFA ("UpdateUserMFA" )
769
+ defer deleteUser (user .UID )
770
+
771
+ // Define the updated MFA factors
772
+ updatedFactors := []* auth.MultiFactorInfo {
773
+ {
774
+ UID : user .MultiFactor .EnrolledFactors [0 ].UID ,
775
+ DisplayName : "Phone Number active updated" ,
776
+ FactorID : "phone" ,
777
+ PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
778
+ PhoneNumber : "+11234567890" ,
779
+ },
780
+ },
781
+ {
782
+ UID : user .MultiFactor .EnrolledFactors [1 ].UID ,
783
+ DisplayName : "Phone Number deprecated updated" ,
784
+ FactorID : "phone" ,
785
+ PhoneNumber : "+19876543210" ,
786
+ },
787
+ }
788
+
789
+ // Update the MFA settings
790
+ params := (& auth.UserToUpdate {}).MFASettings (auth.MultiFactorSettings {
791
+ EnrolledFactors : updatedFactors ,
792
+ })
793
+
794
+ updatedUser , err := client .UpdateUser (context .Background (), user .UID , params )
795
+ if err != nil {
796
+ t .Fatal (err )
797
+ }
798
+
799
+ want := auth.UserRecord {
800
+ EmailVerified : true ,
801
+ UserInfo : & auth.UserInfo {
802
+ Email : user .Email ,
803
+ UID : user .UID ,
804
+ ProviderID : "firebase" ,
805
+ },
806
+ UserMetadata : & auth.UserMetadata {
807
+ CreationTimestamp : user .UserMetadata .CreationTimestamp ,
808
+ },
809
+ TokensValidAfterMillis : user .TokensValidAfterMillis ,
810
+ MultiFactor : & auth.MultiFactorSettings {
811
+ EnrolledFactors : []* auth.MultiFactorInfo {
812
+ {
813
+ UID : user .MultiFactor .EnrolledFactors [0 ].UID ,
814
+ PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
815
+ PhoneNumber : "+11234567890" ,
816
+ },
817
+ PhoneNumber : "+11234567890" ,
818
+ DisplayName : "Phone Number active updated" ,
819
+ FactorID : "phone" ,
820
+ EnrollmentTimestamp : user .MultiFactor .EnrolledFactors [0 ].EnrollmentTimestamp ,
821
+ },
822
+ {
823
+ UID : user .MultiFactor .EnrolledFactors [1 ].UID ,
824
+ PhoneMultiFactorInfo : & auth.PhoneMultiFactorInfo {
825
+ PhoneNumber : "+19876543210" ,
826
+ },
827
+ PhoneNumber : "+19876543210" ,
828
+ DisplayName : "Phone Number deprecated updated" ,
829
+ FactorID : "phone" ,
830
+ EnrollmentTimestamp : user .MultiFactor .EnrolledFactors [1 ].EnrollmentTimestamp ,
831
+ },
832
+ },
833
+ },
834
+ }
835
+
836
+ // Compare the updated user with the expected user record
837
+ if ! reflect .DeepEqual (* updatedUser , want ) {
838
+ t .Errorf ("UpdateUser() = %#v; want = %#v" , * updatedUser , want )
839
+ }
840
+ }
841
+
733
842
func TestDisableUser (t * testing.T ) {
734
843
user := newUserWithParams (t )
735
844
defer deleteUser (user .UID )
0 commit comments