Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@

import com.appsmith.server.applications.base.ApplicationService;
import com.appsmith.server.domains.Application;
import com.appsmith.server.domains.PermissionGroup;
import com.appsmith.server.domains.Theme;
import com.appsmith.server.domains.User;
import com.appsmith.server.domains.Workspace;
import com.appsmith.server.dtos.ApplicationJson;
import com.appsmith.server.dtos.ImportingMetaDTO;
import com.appsmith.server.dtos.InviteUsersDTO;
import com.appsmith.server.dtos.MappedImportableResourcesDTO;
import com.appsmith.server.dtos.UpdatePermissionGroupDTO;
import com.appsmith.server.imports.importable.ImportableService;
import com.appsmith.server.repositories.ApplicationRepository;
import com.appsmith.server.repositories.PermissionGroupRepository;
Expand All @@ -37,7 +33,6 @@
import java.util.UUID;

import static com.appsmith.server.acl.AclPermission.READ_THEMES;
import static com.appsmith.server.constants.FieldName.ADMINISTRATOR;
import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest
Expand Down Expand Up @@ -103,64 +98,15 @@ public void cleanup() {
workspaceService.archiveById(workspace.getId()).block();
}

private Application createApplication() {
@WithUserDetails("api_user")
@Test
public void importThemesToApplication_WhenBothImportedThemesAreCustom_NewThemesCreated() {
Application application = new Application();
application.setName("ThemeTest_" + UUID.randomUUID());
application.setWorkspaceId(this.workspace.getId());
applicationPageService
.createApplication(application, this.workspace.getId())
.block();
return application;
}

public void replaceApiUserWithAnotherUserInWorkspace() {

String origin = "http://random-origin.test";
PermissionGroup adminPermissionGroup = permissionGroupRepository
.findAllById(workspace.getDefaultPermissionGroups())
.filter(permissionGroup -> permissionGroup.getName().startsWith(ADMINISTRATOR))
.collectList()
.block()
.get(0);

// invite usertest to the workspace
InviteUsersDTO inviteUsersDTO = new InviteUsersDTO();
inviteUsersDTO.setUsernames(List.of("usertest@usertest.com"));
inviteUsersDTO.setPermissionGroupId(adminPermissionGroup.getId());
userAndAccessManagementService.inviteUsers(inviteUsersDTO, origin).block();

// Remove api_user from the workspace
UpdatePermissionGroupDTO updatePermissionGroupDTO = new UpdatePermissionGroupDTO();
updatePermissionGroupDTO.setNewPermissionGroupId(null);
updatePermissionGroupDTO.setUsername("api_user");
userWorkspaceService
.updatePermissionGroupForMember(workspace.getId(), updatePermissionGroupDTO, origin)
.block();
}

public void addApiUserToTheWorkspaceAsAdmin() {
String origin = "http://random-origin.test";
PermissionGroup adminPermissionGroup = permissionGroupRepository
.findAllById(workspace.getDefaultPermissionGroups())
.filter(permissionGroup -> permissionGroup.getName().startsWith(ADMINISTRATOR))
.collectList()
.block()
.get(0);

// add api_user back to the workspace
User apiUser = userRepository.findByEmail("api_user").block();
adminPermissionGroup.getAssignedToUserIds().add(apiUser.getId());
permissionGroupRepository
.save(adminPermissionGroup)
.flatMap(
savedRole -> permissionGroupService.cleanPermissionGroupCacheForUsers(List.of(apiUser.getId())))
.block();
}

@WithUserDetails("api_user")
@Test
public void importThemesToApplication_WhenBothImportedThemesAreCustom_NewThemesCreated() {
Application application = createApplication();

// create a application json with a custom theme set as both edit mode and published mode
ApplicationJson applicationJson = new ApplicationJson();
Expand Down Expand Up @@ -219,11 +165,18 @@ public void importThemesToApplication_ApplicationThemeNotFound_DefaultThemeImpor
applicationJson.setEditModeTheme(themeInJson);
applicationJson.setPublishedTheme(themeInJson);

Mono<MappedImportableResourcesDTO> mappedImportableResourcesDTOMono = Mono.just(createApplication())
.map(application -> {
Application application = new Application();
application.setName("ThemeTest_" + UUID.randomUUID());
application.setWorkspaceId(this.workspace.getId());
applicationPageService
.createApplication(application, this.workspace.getId())
.block();

Mono<MappedImportableResourcesDTO> mappedImportableResourcesDTOMono = Mono.just(application)
.map(application1 -> {
// setting invalid ids to themes to check the case
application.setEditModeThemeId(UUID.randomUUID().toString());
application.setPublishedModeThemeId(UUID.randomUUID().toString());
application1.setEditModeThemeId(UUID.randomUUID().toString());
application1.setPublishedModeThemeId(UUID.randomUUID().toString());
return application;
})
.flatMap(applicationRepository::save)
Expand Down