diff --git a/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.tsx b/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.tsx index dc16892decf6bb7a3fd86ed5d311662cd2b7bb86..b5ac551cb7d91696291300f686fc6d3b68409f47 100644 --- a/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.tsx +++ b/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.tsx @@ -18,7 +18,7 @@ export function SliceNameWidget({ const row = pieRows.find(row => row.key === initialKey); if (row == null) { - throw Error(`Could not find pieRow with key ${initialKey}`); + return null; } return ( diff --git a/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.unit.spec.tsx b/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.unit.spec.tsx new file mode 100644 index 0000000000000000000000000000000000000000..6587933885f84e5be7469675ad73f36752395f07 --- /dev/null +++ b/frontend/src/metabase/visualizations/visualizations/PieChart/SliceNameWidget.unit.spec.tsx @@ -0,0 +1,40 @@ +import { render, screen } from "@testing-library/react"; + +import { SliceNameWidget } from "./SliceNameWidget"; + +const MOCK_PIE_ROW = { + key: "some-key", + name: "some-name", + originalName: "some-original-name", + color: "#509EE3", + defaultColor: true, + enabled: true, + hidden: false, + isOther: false, +}; + +describe("SliceNameWidget", () => { + it("should render the name of the pieRow with initialKey", () => { + render( + <SliceNameWidget + initialKey={MOCK_PIE_ROW.key} + pieRows={[MOCK_PIE_ROW, { ...MOCK_PIE_ROW, key: "some-other-key" }]} + updateRowName={() => null} + />, + ); + + expect(screen.getByDisplayValue(MOCK_PIE_ROW.name)).toBeInTheDocument(); + }); + + it("should return null if a pieRow with initialKey cannot be found", () => { + const { container } = render( + <SliceNameWidget + initialKey={"non-present-key"} + pieRows={[MOCK_PIE_ROW]} + updateRowName={() => null} + />, + ); + + expect(container).toBeEmptyDOMElement(); + }); +});