diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/PreviewConfig.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/PreviewConfig.java index a3639bbee3..f57ee2c03e 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/PreviewConfig.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/PreviewConfig.java @@ -117,14 +117,14 @@ public record TimeStratifiedSelects(@NotNull String label, String description, @ @JsonIgnore public boolean isSelectsUnique() { return timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).flatMap(Collection::stream).map(InfoCardSelect::select).distinct().count() - == timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).flatMap(Collection::stream).count(); + == timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).mapToLong(Collection::size).sum(); } @ValidationMethod(message = "Labels must be unique.") @JsonIgnore public boolean isLabelsUnique() { return timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).flatMap(Collection::stream).map(InfoCardSelect::label).distinct().count() - == timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).flatMap(Collection::stream).count(); + == timeStratifiedSelects.stream().map(TimeStratifiedSelects::selects).mapToLong(Collection::size).sum(); } @JsonIgnore @@ -178,7 +178,7 @@ public String resolveSelectLabel(SelectResultInfo info) { public Listresolve) + .map(SelectId::resolve) .collect(Collectors.toList()); } @@ -200,10 +200,10 @@ public ConceptId resolveSearchConcept() { return searchFilters.stream() - .map(FilterId::>resolve) + .map(FilterId::resolve) .map(filter -> filter.getConnector().getConcept()) .distinct() .map(Concept::getId) - .collect(MoreCollectors.onlyElement()); + .collect(MoreCollectors.toOptional()).orElse(null); } } diff --git a/cypress/e2e/frontend/test_1_runQuery.cy.js b/cypress/e2e/frontend/test_1_runQuery.cy.js index d20a199c3e..50e7f69f37 100644 --- a/cypress/e2e/frontend/test_1_runQuery.cy.js +++ b/cypress/e2e/frontend/test_1_runQuery.cy.js @@ -12,7 +12,7 @@ describe("Run query", () => { visitWithToken(USER_TOKEN_WITH_PERMISSIONS); }); - it("Can execute query and see it in the queries tab", () => { + it("Can execute query, see it in the queries tab and delete it", () => { cy.get('[data-test-id="right-pane-container"] >div:visible').as("queryEditor"); // Drag concept to editor @@ -40,18 +40,16 @@ describe("Run query", () => { cy.get("@queryEditor").find('[data-test-id="query-runner-button"]').click(); cy.get("@queryEditor").contains("Ergebnisse"); - }); - it("Can see the executed query in the queries tab", () => { + // Lookup executed query in the previous queries tab cy.get('[data-test-id="left-pane"]').contains("Anfragen").click(); cy.get('[data-test-id="left-pane-container"]').as("leftPaneContainer"); cy.get("@leftPaneContainer").contains("Ergebnisse"); cy.get("@leftPaneContainer").contains("Concept1"); - }); - it("Can delete the query", () => { + // Delete the Query cy.get('[data-test-id="left-pane"]').contains("Anfragen").click(); cy.get('[data-test-id="left-pane-container"]').as("leftPaneContainer"); @@ -60,6 +58,8 @@ describe("Run query", () => { cy.get('@executionList').find('[data-test-id="project-item-delete-button"]').click(); cy.get('@executionList').contains('Anfrage jetzt löschen').click(); + + cy.get('@leftPaneContainer').contains('Keine Anfragen / Formulare gefunden') }); }); diff --git a/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx b/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx index 7ea16ca053..05b3a56f9c 100644 --- a/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx +++ b/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx @@ -41,6 +41,7 @@ export const DeleteProjectItemButton = ({ item }: { item: ProjectItemT }) => { diff --git a/frontend/src/js/previous-queries/list/ProjectItem.tsx b/frontend/src/js/previous-queries/list/ProjectItem.tsx index 700d15cde6..10c578011e 100644 --- a/frontend/src/js/previous-queries/list/ProjectItem.tsx +++ b/frontend/src/js/previous-queries/list/ProjectItem.tsx @@ -276,6 +276,8 @@ const ProjectItem = forwardRef<