- AppRequestRepository에 findAllByOrgAndClientName 메서드 추가
- 클라이언트 신청 해지 프로세스 및 테스트 클린업 로직 구현 - Playwright API 키 관리/클라이언트 관리 경로 및 셀렉터 업데이트
This commit is contained in:
+39
-1
@@ -14,6 +14,11 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.eactive.apim.portal.app.repository.CredentialRepository;
|
||||
import com.eactive.apim.portal.apprequest.entity.AppRequest;
|
||||
import com.eactive.apim.portal.apprequest.repository.AppRequestRepository;
|
||||
import com.eactive.apim.portal.approval.entity.Approval;
|
||||
import com.eactive.apim.portal.approval.statemachine.RequestedState;
|
||||
import com.eactive.apim.portal.apps.approval.service.ApprovalService;
|
||||
import com.eactive.apim.portal.apps.community.partnership.repository.PartnershipApplicationRepository;
|
||||
import com.eactive.apim.portal.apps.community.qna.repository.InquiryRepository;
|
||||
import com.eactive.apim.portal.apps.user.repository.PortalOrgRepository;
|
||||
@@ -58,6 +63,8 @@ class TestCleanupServiceTest {
|
||||
@Mock private UserPasswordHistoryRepository userPasswordHistoryRepository;
|
||||
@Mock private UserLogRepository userLogRepository;
|
||||
@Mock private CredentialRepository credentialRepository;
|
||||
@Mock private AppRequestRepository appRequestRepository;
|
||||
@Mock private ApprovalService approvalService;
|
||||
@Mock private WebhookRequestRepository webhookRequestRepository;
|
||||
@Mock private WebhookRequestApiRepository webhookRequestApiRepository;
|
||||
@Mock private WebhookRequestEventRepository webhookRequestEventRepository;
|
||||
@@ -78,7 +85,8 @@ class TestCleanupServiceTest {
|
||||
service = new TestCleanupService(environment, portalOrgRepository, portalUserRepository,
|
||||
inquiryRepository, inquiryCommentRepository, partnershipApplicationRepository,
|
||||
userRoleHistoryRepository, portalUserPrivacyAgreementRepository, userPasswordHistoryRepository,
|
||||
userLogRepository, credentialRepository, webhookRequestRepository, webhookRequestApiRepository,
|
||||
userLogRepository, credentialRepository, appRequestRepository, approvalService,
|
||||
webhookRequestRepository, webhookRequestApiRepository,
|
||||
webhookRequestEventRepository, webhookService, userInvitationRepository, nativeQueries);
|
||||
when(environment.acceptsProfiles(Profiles.of("stage", "prod"))).thenReturn(false);
|
||||
}
|
||||
@@ -226,6 +234,36 @@ class TestCleanupServiceTest {
|
||||
verify(portalUserRepository, never()).delete(target);
|
||||
}
|
||||
|
||||
@Test
|
||||
void cancelPendingTestAppRequests_cancelsOnlyExactTestAppRequest() {
|
||||
PortalUser target = user();
|
||||
PortalOrg org = org();
|
||||
target.setPortalOrg(org);
|
||||
AppRequest request = new AppRequest();
|
||||
request.setId("APP_REQ_1");
|
||||
request.setClientName("단위테스트앱-20260824-144907");
|
||||
Approval approval = new Approval();
|
||||
approval.setApprovalStatus(new RequestedState());
|
||||
request.setApproval(approval);
|
||||
when(portalUserRepository.findPortalUserByEmailAddr(EMAIL)).thenReturn(Optional.of(target));
|
||||
when(appRequestRepository.findAllByOrgAndClientName(org, request.getClientName()))
|
||||
.thenReturn(Collections.singletonList(request));
|
||||
|
||||
TestCleanupResult result = service.cancelPendingTestAppRequests(EMAIL, request.getClientName());
|
||||
|
||||
assertTrue(result.isFound());
|
||||
assertEquals("APP_REQ_1", result.getTargetId());
|
||||
assertEquals(1L, result.getDeletedCounts().get("PTL_APP_REQUEST_CANCELLED"));
|
||||
verify(approvalService).cancelAppApproval(request);
|
||||
}
|
||||
|
||||
@Test
|
||||
void cancelPendingTestAppRequests_rejectsNonTestName() {
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
() -> service.cancelPendingTestAppRequests(EMAIL, "운영앱"));
|
||||
verifyNoInteractions(appRequestRepository, approvalService);
|
||||
}
|
||||
|
||||
@Test
|
||||
void deleteUserCascade_found_deletesOrphanDataAndUser() {
|
||||
PortalUser target = user();
|
||||
|
||||
Reference in New Issue
Block a user