@@ -1051,7 +1051,7 @@ func TestUpdateUserProfile(t *testing.T) {
1051
1051
require .Equal (t ,database .AuditActionWrite ,auditor .AuditLogs ()[numLogs - 1 ].Action )
1052
1052
})
1053
1053
1054
- t .Run ("UpdateSelfAsMember " ,func (t * testing.T ) {
1054
+ t .Run ("UpdateSelfAsMember_Name " ,func (t * testing.T ) {
1055
1055
t .Parallel ()
1056
1056
auditor := audit .NewMock ()
1057
1057
client := coderdtest .New (t ,& coderdtest.Options {Auditor :auditor })
@@ -1060,29 +1060,82 @@ func TestUpdateUserProfile(t *testing.T) {
1060
1060
firstUser := coderdtest .CreateFirstUser (t ,client )
1061
1061
numLogs ++ // add an audit log for login
1062
1062
1063
- memberClient ,_ := coderdtest .CreateAnotherUser (t ,client ,firstUser .OrganizationID )
1063
+ memberClient ,memberUser := coderdtest .CreateAnotherUser (t ,client ,firstUser .OrganizationID )
1064
1064
numLogs ++ // add an audit log for user creation
1065
1065
1066
1066
ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
1067
1067
defer cancel ()
1068
1068
1069
- newUsername := coderdtest .RandomUsername (t )
1070
1069
newName := coderdtest .RandomName (t )
1071
1070
userProfile ,err := memberClient .UpdateUserProfile (ctx ,codersdk .Me , codersdk.UpdateUserProfileRequest {
1072
- Username :newUsername ,
1073
1071
Name :newName ,
1072
+ Username :memberUser .Username ,
1074
1073
})
1075
1074
numLogs ++ // add an audit log for user update
1076
1075
numLogs ++ // add an audit log for API key creation
1077
1076
1078
1077
require .NoError (t ,err )
1079
- require .Equal (t ,newUsername ,userProfile .Username )
1078
+ require .Equal (t ,memberUser . Username ,userProfile .Username )
1080
1079
require .Equal (t ,newName ,userProfile .Name )
1081
1080
1082
1081
require .Len (t ,auditor .AuditLogs (),numLogs )
1083
1082
require .Equal (t ,database .AuditActionWrite ,auditor .AuditLogs ()[numLogs - 1 ].Action )
1084
1083
})
1085
1084
1085
+ t .Run ("UpdateSelfAsMember_Username" ,func (t * testing.T ) {
1086
+ t .Parallel ()
1087
+ auditor := audit .NewMock ()
1088
+ client := coderdtest .New (t ,& coderdtest.Options {Auditor :auditor })
1089
+
1090
+ firstUser := coderdtest .CreateFirstUser (t ,client )
1091
+ memberClient ,memberUser := coderdtest .CreateAnotherUser (t ,client ,firstUser .OrganizationID )
1092
+
1093
+ ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
1094
+ defer cancel ()
1095
+
1096
+ newUsername := coderdtest .RandomUsername (t )
1097
+ _ ,err := memberClient .UpdateUserProfile (ctx ,codersdk .Me , codersdk.UpdateUserProfileRequest {
1098
+ Name :memberUser .Name ,
1099
+ Username :newUsername ,
1100
+ })
1101
+
1102
+ var apiErr * codersdk.Error
1103
+ require .ErrorAs (t ,err ,& apiErr )
1104
+ require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
1105
+ })
1106
+
1107
+ t .Run ("UpdateMemberAsAdmin_Username" ,func (t * testing.T ) {
1108
+ t .Parallel ()
1109
+ auditor := audit .NewMock ()
1110
+ adminClient := coderdtest .New (t ,& coderdtest.Options {Auditor :auditor })
1111
+ numLogs := len (auditor .AuditLogs ())
1112
+
1113
+ adminUser := coderdtest .CreateFirstUser (t ,adminClient )
1114
+ numLogs ++ // add an audit log for login
1115
+
1116
+ _ ,memberUser := coderdtest .CreateAnotherUser (t ,adminClient ,adminUser .OrganizationID )
1117
+ numLogs ++ // add an audit log for user creation
1118
+
1119
+ ctx ,cancel := context .WithTimeout (context .Background (),testutil .WaitLong )
1120
+ defer cancel ()
1121
+
1122
+ newUsername := coderdtest .RandomUsername (t )
1123
+ userProfile ,err := adminClient .UpdateUserProfile (ctx ,codersdk .Me , codersdk.UpdateUserProfileRequest {
1124
+ Name :memberUser .Name ,
1125
+ Username :newUsername ,
1126
+ })
1127
+
1128
+ numLogs ++ // add an audit log for user update
1129
+ numLogs ++ // add an audit log for API key creation
1130
+
1131
+ require .NoError (t ,err )
1132
+ require .Equal (t ,newUsername ,userProfile .Username )
1133
+ require .Equal (t ,memberUser .Name ,userProfile .Name )
1134
+
1135
+ require .Len (t ,auditor .AuditLogs (),numLogs )
1136
+ require .Equal (t ,database .AuditActionWrite ,auditor .AuditLogs ()[numLogs - 1 ].Action )
1137
+ })
1138
+
1086
1139
t .Run ("InvalidRealUserName" ,func (t * testing.T ) {
1087
1140
t .Parallel ()
1088
1141
client := coderdtest .New (t ,nil )