@@ -1026,7 +1026,13 @@ func TestEditNamespace(t *testing.T) {
10261026 requiredMocks func ()
10271027 tenantID string
10281028 namespaceName string
1029- expected Expected
1029+ settings struct {
1030+ SessionRecord * bool
1031+ ConnectionAnnouncement * string
1032+ DisablePassword * bool
1033+ DisablePublicKey * bool
1034+ }
1035+ expected Expected
10301036 }{
10311037 {
10321038 description : "fails when namespace does not exist" ,
@@ -1111,10 +1117,112 @@ func TestEditNamespace(t *testing.T) {
11111117 nil ,
11121118 },
11131119 },
1120+ {
1121+ description : "succeeds changing DisablePassword" ,
1122+ tenantID : "xxxxx" ,
1123+ settings : struct {
1124+ SessionRecord * bool
1125+ ConnectionAnnouncement * string
1126+ DisablePassword * bool
1127+ DisablePublicKey * bool
1128+ }{
1129+ DisablePassword : func (b bool ) * bool { return & b }(true ),
1130+ },
1131+ requiredMocks : func () {
1132+ namespace := & models.Namespace {
1133+ TenantID : "xxxxx" ,
1134+ Name : "oldname" ,
1135+ Settings : & models.NamespaceSettings {DisablePassword : false },
1136+ }
1137+ storeMock .
1138+ On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , "xxxxx" ).
1139+ Return (namespace , nil ).
1140+ Once ()
1141+
1142+ expectedNamespace := * namespace
1143+ expectedNamespace .Settings .DisablePassword = true
1144+ storeMock .
1145+ On ("NamespaceUpdate" , ctx , & expectedNamespace ).
1146+ Return (nil ).
1147+ Once ()
1148+
1149+ finalNamespace := & models.Namespace {
1150+ TenantID : "xxxxx" ,
1151+ Name : "oldname" ,
1152+ Settings : & models.NamespaceSettings {DisablePassword : true },
1153+ }
1154+ storeMock .
1155+ On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , "xxxxx" ).
1156+ Return (finalNamespace , nil ).
1157+ Once ()
1158+ },
1159+ expected : Expected {
1160+ & models.Namespace {
1161+ TenantID : "xxxxx" ,
1162+ Name : "oldname" ,
1163+ Settings : & models.NamespaceSettings {DisablePassword : true },
1164+ },
1165+ nil ,
1166+ },
1167+ },
1168+ {
1169+ description : "succeeds changing DisablePublicKey" ,
1170+ tenantID : "xxxxx" ,
1171+ settings : struct {
1172+ SessionRecord * bool
1173+ ConnectionAnnouncement * string
1174+ DisablePassword * bool
1175+ DisablePublicKey * bool
1176+ }{
1177+ DisablePublicKey : func (b bool ) * bool { return & b }(true ),
1178+ },
1179+ requiredMocks : func () {
1180+ namespace := & models.Namespace {
1181+ TenantID : "xxxxx" ,
1182+ Name : "oldname" ,
1183+ Settings : & models.NamespaceSettings {DisablePublicKey : false },
1184+ }
1185+ storeMock .
1186+ On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , "xxxxx" ).
1187+ Return (namespace , nil ).
1188+ Once ()
1189+
1190+ expectedNamespace := * namespace
1191+ expectedNamespace .Settings .DisablePublicKey = true
1192+ storeMock .
1193+ On ("NamespaceUpdate" , ctx , & expectedNamespace ).
1194+ Return (nil ).
1195+ Once ()
1196+
1197+ finalNamespace := & models.Namespace {
1198+ TenantID : "xxxxx" ,
1199+ Name : "oldname" ,
1200+ Settings : & models.NamespaceSettings {DisablePublicKey : true },
1201+ }
1202+ storeMock .
1203+ On ("NamespaceResolve" , ctx , store .NamespaceTenantIDResolver , "xxxxx" ).
1204+ Return (finalNamespace , nil ).
1205+ Once ()
1206+ },
1207+ expected : Expected {
1208+ & models.Namespace {
1209+ TenantID : "xxxxx" ,
1210+ Name : "oldname" ,
1211+ Settings : & models.NamespaceSettings {DisablePublicKey : true },
1212+ },
1213+ nil ,
1214+ },
1215+ },
11141216 {
11151217 description : "succeeds" ,
11161218 namespaceName : "newname" ,
11171219 tenantID : "xxxxx" ,
1220+ settings : struct {
1221+ SessionRecord * bool
1222+ ConnectionAnnouncement * string
1223+ DisablePassword * bool
1224+ DisablePublicKey * bool
1225+ }{},
11181226 requiredMocks : func () {
11191227 namespace := & models.Namespace {
11201228 TenantID : "xxxxx" ,
@@ -1163,6 +1271,11 @@ func TestEditNamespace(t *testing.T) {
11631271 TenantParam : requests.TenantParam {Tenant : tc .tenantID },
11641272 Name : tc .namespaceName ,
11651273 }
1274+ req .Settings .SessionRecord = tc .settings .SessionRecord
1275+ req .Settings .ConnectionAnnouncement = tc .settings .ConnectionAnnouncement
1276+ req .Settings .DisablePassword = tc .settings .DisablePassword
1277+ req .Settings .DisablePublicKey = tc .settings .DisablePublicKey
1278+
11661279 namespace , err := service .EditNamespace (ctx , req )
11671280
11681281 assert .Equal (t , tc .expected , Expected {namespace , err })
0 commit comments