From 619202e3d4e40b01b536a9366ed69566d005862c Mon Sep 17 00:00:00 2001 From: Aleksandr Lesnenko <alxnddr@users.noreply.github.com> Date: Fri, 18 Oct 2024 12:38:07 -0400 Subject: [PATCH] Adds export description when unformatted option is selected (#48869) * hide formatted export description when unformatted * add unformatted copy --- .../ExportSettingsWidget.tsx | 8 ++++- .../QueryDownloadPopover.unit.spec.tsx | 30 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/frontend/src/metabase/common/components/ExportSettingsWidget/ExportSettingsWidget.tsx b/frontend/src/metabase/common/components/ExportSettingsWidget/ExportSettingsWidget.tsx index 712a3323a8d..36904828db5 100644 --- a/frontend/src/metabase/common/components/ExportSettingsWidget/ExportSettingsWidget.tsx +++ b/frontend/src/metabase/common/components/ExportSettingsWidget/ExportSettingsWidget.tsx @@ -53,10 +53,16 @@ export const ExportSettingsWidget = ({ <Radio value="false" label={t`Unformatted`} /> </Group> </Radio.Group> + <Text + data-testid="formatting-description" size="sm" color="text-medium" - >{t`E.g. September 6, 2024 or $187.50, like in ${applicationName}`}</Text> + > + {isFormattingEnabled + ? t`E.g. September 6, 2024 or $187.50, like in ${applicationName}` + : t`E.g. 2024-09-06 or 187.50, like in the database`} + </Text> </Stack> ) : null} {canConfigurePivoting ? ( diff --git a/frontend/src/metabase/query_builder/components/QueryDownloadPopover/QueryDownloadPopover.unit.spec.tsx b/frontend/src/metabase/query_builder/components/QueryDownloadPopover/QueryDownloadPopover.unit.spec.tsx index 686ba82ca80..3fd23fc3ceb 100644 --- a/frontend/src/metabase/query_builder/components/QueryDownloadPopover/QueryDownloadPopover.unit.spec.tsx +++ b/frontend/src/metabase/query_builder/components/QueryDownloadPopover/QueryDownloadPopover.unit.spec.tsx @@ -96,7 +96,10 @@ describe("QueryDownloadPopover", () => { const { onDownload } = setup(); await userEvent.click(screen.getByLabelText(`.${format}`)); - await userEvent.click(screen.getByLabelText(`Unformatted`)); + await userEvent.click(screen.getByLabelText("Unformatted")); + expect(screen.queryByTestId("formatting-description")).toHaveTextContent( + `E.g. 2024-09-06 or 187.50, like in the database`, + ); expect( screen.queryByLabelText("Keep data pivoted"), ).not.toBeInTheDocument(); @@ -112,6 +115,31 @@ describe("QueryDownloadPopover", () => { }, ); + it.each(["csv", "json", "xlsx"])( + "should trigger formatted download for %s format", + async format => { + const { onDownload } = setup(); + + await userEvent.click(screen.getByLabelText(`.${format}`)); + await userEvent.click(screen.getByLabelText("Formatted")); + expect(screen.queryByTestId("formatting-description")).toHaveTextContent( + `E.g. September 6, 2024 or $187.50, like in Metabase`, + ); + expect( + screen.queryByLabelText("Keep data pivoted"), + ).not.toBeInTheDocument(); + await userEvent.click( + await screen.findByTestId("download-results-button"), + ); + + expect(onDownload).toHaveBeenCalledWith({ + type: format, + enableFormatting: true, + enablePivot: false, + }); + }, + ); + it("should not trigger unformatted download for png format", async () => { const format = "png"; const { onDownload } = setup({ card: { ...TEST_CARD, display: "line" } }); -- GitLab