diff --git a/frontend/src/metabase/visualizations/components/settings/ChartNestedSettingSeries.jsx b/frontend/src/metabase/visualizations/components/settings/ChartNestedSettingSeries.jsx index 02d2b521ba557a18aebf079b7c25de6ca784fde7..7ddb8df9a06a11e1bdc9aed12f69fd79deed61ab 100644 --- a/frontend/src/metabase/visualizations/components/settings/ChartNestedSettingSeries.jsx +++ b/frontend/src/metabase/visualizations/components/settings/ChartNestedSettingSeries.jsx @@ -27,6 +27,8 @@ export default class ChartNestedSettingSeries extends React.Component { const objectKey = object && getObjectKey(object); const isSelected = single => objectKey === getObjectKey(single); + const display = object && object.card.display; + const isLineAreaBar = ["line", "area", "bar", "combo"].includes(display); const isStacked = settings["stackable.stack_type"] != null; return ( @@ -58,7 +60,7 @@ export default class ChartNestedSettingSeries extends React.Component { onChangeObjectSettings(single, { title: e.target.value }) } /> - {!isStacked ? ( + {isLineAreaBar && !isStacked ? ( <ButtonGroup className="ml1 align-self-stretch" value={settings.display} diff --git a/frontend/test/metabase/visualizations/components/settings/ChartNestedSettingsSeries.unit.spec.js b/frontend/test/metabase/visualizations/components/settings/ChartNestedSettingsSeries.unit.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..3b1b01d8ebc050dcef77b392b3fdc317f6c02fcf --- /dev/null +++ b/frontend/test/metabase/visualizations/components/settings/ChartNestedSettingsSeries.unit.spec.js @@ -0,0 +1,44 @@ +import React from "react"; +import { mount } from "enzyme"; + +// these tests use ChartSettings directly, but logic we're testing lives in ChartNestedSettingSeries +import ChartSettings from "metabase/visualizations/components/ChartSettings"; + +function getSeries(display) { + return [ + { + card: { display, visualization_settings: {} }, + data: { + rows: [["a", 1], ["b", 2]], + cols: [{ name: "foo" }, { name: "bar" }], + }, + }, + ]; +} +describe("ChartNestedSettingSeries", () => { + it("shouldn't show line/area/bar buttons for row charts", () => { + const settings = mount( + <ChartSettings + series={getSeries("row")} + initial={{ section: "Display" }} + />, + ); + + expect(settings.find(".Icon-line")).toHaveLength(0); + expect(settings.find(".Icon-area")).toHaveLength(0); + expect(settings.find(".Icon-bar")).toHaveLength(0); + }); + + it("should show line/area/bar buttons for bar charts", () => { + const settings = mount( + <ChartSettings + series={getSeries("bar")} + initial={{ section: "Display" }} + />, + ); + + expect(settings.find(".Icon-line")).toHaveLength(1); + expect(settings.find(".Icon-area")).toHaveLength(1); + expect(settings.find(".Icon-bar")).toHaveLength(1); + }); +});