fix: check for repoName while deleting apps (#8866)

* check for repoName while deleting apps

* Added tests
This commit is contained in:
Anagh Hegde 2021-10-29 12:51:31 +05:30 committed by GitHub
parent 3fd5edad11
commit ebb9665d42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 4 deletions

View File

@ -319,10 +319,9 @@ public class ApplicationPageServiceImpl implements ApplicationPageService {
return applicationMono
.flatMapMany(application -> {
GitApplicationMetadata gitData = application.getGitApplicationMetadata();
if (gitData != null && !StringUtils.isEmpty(gitData.getDefaultApplicationId())) {
GitApplicationMetadata gitApplicationMetadata = application.getGitApplicationMetadata();
String repoName = gitApplicationMetadata.getRepoName();
Path repoPath = Paths.get(application.getOrganizationId(), gitApplicationMetadata.getDefaultApplicationId(), repoName);
if (gitData != null && !StringUtils.isEmpty(gitData.getDefaultApplicationId()) && !StringUtils.isEmpty(gitData.getRepoName())) {
String repoName = gitData.getRepoName();
Path repoPath = Paths.get(application.getOrganizationId(), gitData.getDefaultApplicationId(), repoName);
// Delete git repo from local and delete the applications from DB
return gitFileUtils.detachRemote(repoPath)
.flatMapMany(isCleared -> applicationService

View File

@ -1437,4 +1437,46 @@ public class ApplicationServiceTest {
.verifyComplete();
}
@Test
@WithUserDetails(value = "api_user")
public void deleteApplication_withNullGitData_Success() {
Application testApplication = new Application();
String appName = "deleteApplication_withNullGitData_Success";
testApplication.setName(appName);
Application application = applicationPageService.createApplication(testApplication, orgId).block();
Mono<Application> applicationMono = applicationPageService.deleteApplication(application.getId());
StepVerifier
.create(applicationMono)
.assertNext(application1 -> {
assertThat(application1.isDeleted()).isTrue();
})
.verifyComplete();
}
@Test
@WithUserDetails(value = "api_user")
public void deleteApplication_WithDeployKeysNotConnectedToRemote_Success() {
Application testApplication = new Application();
String appName = "deleteApplication_WithDeployKeysNotConnectedToRemote_Success";
testApplication.setName(appName);
GitApplicationMetadata gitApplicationMetadata = new GitApplicationMetadata();
GitAuth gitAuth = new GitAuth();
gitAuth.setPrivateKey("privateKey");
gitAuth.setPublicKey("publicKey");
gitApplicationMetadata.setGitAuth(gitAuth);
testApplication.setGitApplicationMetadata(gitApplicationMetadata);
Application application = applicationPageService.createApplication(testApplication, orgId).block();
Mono<Application> applicationMono = applicationPageService.deleteApplication(application.getId());
StepVerifier
.create(applicationMono)
.assertNext(application1 -> {
assertThat(application1.isDeleted()).isTrue();
})
.verifyComplete();
}
}