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