diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/CreateDBTablePageSolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/CreateDBTablePageSolutionCEImpl.java index 732ae192b4..21d564a4dc 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/CreateDBTablePageSolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/CreateDBTablePageSolutionCEImpl.java @@ -637,6 +637,11 @@ public class CreateDBTablePageSolutionCEImpl implements CreateDBTablePageSolutio actionDTO.setRefType(templateAction.getRefType()); actionDTO.setRefName(templateAction.getRefName()); + if (templateAction.getUnpublishedAction() != null) { + actionDTO.setDynamicBindingPathList( + templateAction.getUnpublishedAction().getDynamicBindingPathList()); + } + // Indicates that source of action creation is generate-crud-page actionDTO.setSource(ActionCreationSourceTypeEnum.GENERATE_PAGE); diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/CreateDBTablePageSolutionTests.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/CreateDBTablePageSolutionTests.java index b86f0064d5..4f2820063c 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/CreateDBTablePageSolutionTests.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/CreateDBTablePageSolutionTests.java @@ -457,6 +457,37 @@ public class CreateDBTablePageSolutionTests { .verifyComplete(); } + @Test + @WithUserDetails(value = "api_user") + public void createPageWithDynamicBindingPathListForPostgresqlDS() { + resource.setApplicationId(testApp.getId()); + PageDTO newPage = new PageDTO(); + newPage.setApplicationId(testApp.getId()); + newPage.setName("crud-admin-page-dynamic-binding-list"); + + Mono resultMono = applicationPageService + .createPage(newPage) + .flatMap(savedPage -> + solution.createPageFromDBTable(savedPage.getId(), resource, testDefaultEnvironmentId)) + .map(crudPageResponseDTO -> crudPageResponseDTO.getPage()); + + StepVerifier.create(resultMono.zipWhen(pageDTO -> getActions(pageDTO.getId()))) + .assertNext(tuple -> { + PageDTO page = tuple.getT1(); + List actions = tuple.getT2(); + assertThat(page.getName()).isEqualTo(newPage.getName()); + assertThat(actions).hasSize(4); + for (NewAction action : actions) { + ActionDTO unpublishedAction = action.getUnpublishedAction(); + assertThat(unpublishedAction.getDynamicBindingPathList()) + .isNotNull(); + assertThat(unpublishedAction.getDynamicBindingPathList()) + .isNotEmpty(); + } + }) + .verifyComplete(); + } + @Test @WithUserDetails(value = "api_user") public void createPageWithLessColumnsComparedToTemplateForPostgres() {