From 5bde4b88f6056c27d409e98169cc782ca33b87af Mon Sep 17 00:00:00 2001 From: Nick Fitzpatrick <nick@metabase.com> Date: Tue, 14 Mar 2023 15:49:04 -0300 Subject: [PATCH] adding hasMultipleDimensions check to hasLegend clause (#29160) * adding hasMultipleDimensions check to hasLegend clause * Adding queryBuilderMain helper * PR Feedback * remove only --- e2e/support/helpers/e2e-ui-elements-helpers.js | 4 ++++ e2e/test/scenarios/visualizations/line_chart.cy.spec.js | 8 +++++++- .../src/metabase/query_builder/components/view/View.jsx | 5 ++++- .../visualizations/components/LineAreaBarChart.jsx | 3 ++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/e2e/support/helpers/e2e-ui-elements-helpers.js b/e2e/support/helpers/e2e-ui-elements-helpers.js index 1da8687a900..a412bc5f44c 100644 --- a/e2e/support/helpers/e2e-ui-elements-helpers.js +++ b/e2e/support/helpers/e2e-ui-elements-helpers.js @@ -95,3 +95,7 @@ export const moveColumnDown = (column, distance) => { .trigger("mousemove", 0, distance * 50, { force: true }) .trigger("mouseup", 0, distance * 50, { force: true }); }; + +export const queryBuilderMain = () => { + return cy.findByTestId("query-builder-main"); +}; diff --git a/e2e/test/scenarios/visualizations/line_chart.cy.spec.js b/e2e/test/scenarios/visualizations/line_chart.cy.spec.js index 3aee81f0709..8d0eaf8868d 100644 --- a/e2e/test/scenarios/visualizations/line_chart.cy.spec.js +++ b/e2e/test/scenarios/visualizations/line_chart.cy.spec.js @@ -4,6 +4,7 @@ import { popover, visitDashboard, openSeriesSettings, + queryBuilderMain, } from "e2e/support/helpers"; import { SAMPLE_DB_ID } from "e2e/support/cypress_data"; @@ -415,8 +416,13 @@ describe("scenarios > visualizations > line chart", () => { cy.findByText("Category is Doohickey"); }); - it.skip("should not drop the chart legend (metabase#4995)", () => { + it("should not drop the chart legend (metabase#4995)", () => { cy.findAllByTestId("legend-item").should("contain", "Doohickey"); + + cy.log("Ensure that legend is hidden when not dealing with multi series"); + cy.findByTestId("viz-settings-button").click(); + cy.findByTestId("remove-CATEGORY").click(); + queryBuilderMain().should("not.contain", "Doohickey"); }); it("should display correct axis labels (metabase#12782)", () => { diff --git a/frontend/src/metabase/query_builder/components/view/View.jsx b/frontend/src/metabase/query_builder/components/view/View.jsx index ecc99ee8c91..83d4a3708f3 100644 --- a/frontend/src/metabase/query_builder/components/view/View.jsx +++ b/frontend/src/metabase/query_builder/components/view/View.jsx @@ -345,7 +345,10 @@ class View extends React.Component { const isSidebarOpen = leftSidebar || rightSidebar; return ( - <QueryBuilderMain isSidebarOpen={isSidebarOpen}> + <QueryBuilderMain + isSidebarOpen={isSidebarOpen} + data-testid="query-builder-main" + > {isNative ? ( this.renderNativeQueryEditor() ) : ( diff --git a/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx b/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx index ea74b2c9d8f..e77de043943 100644 --- a/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx +++ b/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx @@ -275,7 +275,8 @@ export default class LineAreaBarChart extends Component { const hasMultipleSeries = series.length > 1; const canChangeSeries = onAddSeries || onEditSeries || onRemoveSeries; const hasLegendButtons = !hasTitle && actionButtons; - const hasLegend = hasMultipleSeries || canChangeSeries || hasLegendButtons; + const hasLegend = + hasMultipleSeries || canChangeSeries || hasLegendButtons || hasBreakout; const seriesSettings = settings.series && series.map(single => settings.series(single)); -- GitLab