diff --git a/e2e/test/scenarios/question/reproductions/32964-long-column-name-in-visualization-settings.cy.spec.js b/e2e/test/scenarios/question/reproductions/32964-long-column-name-in-visualization-settings.cy.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..194a72a24a64b7400b9b62518945f60993fcef40 --- /dev/null +++ b/e2e/test/scenarios/question/reproductions/32964-long-column-name-in-visualization-settings.cy.spec.js @@ -0,0 +1,49 @@ +import { restore, visitQuestionAdhoc } from "e2e/support/helpers"; +import { SAMPLE_DB_ID } from "e2e/support/cypress_data"; +import { SAMPLE_DATABASE } from "e2e/support/cypress_sample_database"; +const { ORDERS_ID } = SAMPLE_DATABASE; + +const LONG_NAME = "A very long column name that will cause text overflow"; + +const QUESTION = { + dataset_query: { + type: "query", + database: SAMPLE_DB_ID, + query: { + "source-table": ORDERS_ID, + expressions: { + [LONG_NAME]: ["*", ["field", SAMPLE_DATABASE.ORDERS.SUBTOTAL, null], 2], + }, + aggregation: [["sum", ["expression", LONG_NAME]]], + breakout: [ + [ + "field", + SAMPLE_DATABASE.ORDERS.CREATED_AT, + { + "base-type": "type/DateTime", + "temporal-unit": "week", + }, + ], + ], + }, + }, +}; + +describe("issue 32964", () => { + beforeEach(() => { + restore(); + cy.signInAsAdmin(); + }); + + it("should not overflow chart settings sidebar with long column name (metabase#32964)", () => { + visitQuestionAdhoc(QUESTION); + cy.findByTestId("viz-settings-button").click(); + cy.findByTestId("sidebar-left").within(([sidebar]) => { + const maxX = sidebar.getBoundingClientRect().right; + cy.findByText(`Sum of ${LONG_NAME}`).then(([el]) => { + const x = el.getBoundingClientRect().right; + expect(x).to.be.lessThan(maxX); + }); + }); + }); +}); diff --git a/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.styled.tsx b/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.styled.tsx index e691afe7708e832b33e1c7753e52e6fcf4156fda..ba9d0f93520e35e32ac07e3a7884492c6376657d 100644 --- a/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.styled.tsx +++ b/frontend/src/metabase/visualizations/components/settings/ChartSettingFieldPicker.styled.tsx @@ -43,7 +43,8 @@ export const ChartSettingFieldPickerRoot = styled.div<ChartSettingFieldPickerRoo margin-right: 0.25rem; text-overflow: ellipsis; max-width: 100%; - white-space: nowrap; + overflow-wrap: anywhere; + text-align: left; overflow: hidden; color: ${color("text-dark")}; } diff --git a/frontend/src/metabase/visualizations/components/settings/ColumnItem.styled.tsx b/frontend/src/metabase/visualizations/components/settings/ColumnItem.styled.tsx index c8c62b1a3d993a882241300206c2898d09e41297..c05e2191c5bf4377aec6019cf05e3b6999af6e43 100644 --- a/frontend/src/metabase/visualizations/components/settings/ColumnItem.styled.tsx +++ b/frontend/src/metabase/visualizations/components/settings/ColumnItem.styled.tsx @@ -74,6 +74,7 @@ export const ColumnItemIcon = styled(Button)` export const ColumnItemDragHandle = styled(Icon)` color: ${color("text-medium")}; + flex-shrink: 0; `; export const ColumnItemColorPicker = styled(ChartSettingColorPicker)`