@@ -1001,3 +1001,57 @@ async def test_modify_domain_node_with_scaling_groups_to_remove(
10011001
10021002 assert result .domain_data is not None
10031003 mock_admin_repository .modify_domain_node_with_permissions_force .assert_called_once ()
1004+
1005+ async def test_modify_domain_node_with_disjoint_scaling_groups_succeeds (
1006+ self ,
1007+ service : DomainService ,
1008+ mock_admin_repository : MagicMock ,
1009+ superadmin_user : UserInfo ,
1010+ sample_domain_data : DomainData ,
1011+ ) -> None :
1012+ """Modify domain node with disjoint add/remove scaling groups should succeed."""
1013+ mock_admin_repository .modify_domain_node_with_permissions_force = AsyncMock (
1014+ return_value = sample_domain_data
1015+ )
1016+
1017+ action = ModifyDomainNodeAction (
1018+ user_info = superadmin_user ,
1019+ updater = Updater (
1020+ spec = DomainNodeUpdaterSpec (),
1021+ pk_value = "test-domain" ,
1022+ ),
1023+ sgroups_to_add = {"sg1" , "sg2" },
1024+ sgroups_to_remove = {"sg3" , "sg4" }, # No overlap
1025+ )
1026+
1027+ result = await service .modify_domain_node (action )
1028+
1029+ assert result .domain_data is not None
1030+ mock_admin_repository .modify_domain_node_with_permissions_force .assert_called_once ()
1031+
1032+ async def test_modify_domain_node_with_empty_scaling_groups_succeeds (
1033+ self ,
1034+ service : DomainService ,
1035+ mock_admin_repository : MagicMock ,
1036+ superadmin_user : UserInfo ,
1037+ sample_domain_data : DomainData ,
1038+ ) -> None :
1039+ """Modify domain node with both empty scaling groups should succeed."""
1040+ mock_admin_repository .modify_domain_node_with_permissions_force = AsyncMock (
1041+ return_value = sample_domain_data
1042+ )
1043+
1044+ action = ModifyDomainNodeAction (
1045+ user_info = superadmin_user ,
1046+ updater = Updater (
1047+ spec = DomainNodeUpdaterSpec (),
1048+ pk_value = "test-domain" ,
1049+ ),
1050+ sgroups_to_add = set (),
1051+ sgroups_to_remove = set (),
1052+ )
1053+
1054+ result = await service .modify_domain_node (action )
1055+
1056+ assert result .domain_data is not None
1057+ mock_admin_repository .modify_domain_node_with_permissions_force .assert_called_once ()
0 commit comments