sadpandajoe commented on code in PR #45619:
URL: https://github.com/apache/superset/pull/45619#discussion_r4371432449


##########
superset-frontend/src/explore/components/useExploreAdditionalActionsMenu/useExploreAdditionalActionsMenu.test.tsx:
##########
@@ -520,3 +520,75 @@ test('Export All Data JPEG screenshot passes 
addWarningToast to downloadAsImage'
     mockAddWarningToast,
   );
 });
+
+test('A Big Number chart keeps only the image exports in Data Export Options', 
async () => {
+  render(
+    <TestComponent
+      {...defaultProps}
+      latestQueryFormData={{
+        datasource: '1__table',
+        viz_type: 'big_number_total',
+      }}
+    />,
+    {
+      useRedux: true,
+      initialState: { explore: { can_export_image: true } },
+    },
+  );
+
+  await userEvent.hover(await screen.findByText('Data Export Options'));
+  await userEvent.hover(await screen.findByText('Export All Data'));
+  expect(
+    await screen.findByText('Export screenshot (jpeg)'),
+  ).toBeInTheDocument();
+  expect(screen.getByText('Export screenshot (png)')).toBeInTheDocument();
+  expect(screen.queryByText('Export to .CSV')).not.toBeInTheDocument();
+  expect(screen.queryByText('Export to Excel')).not.toBeInTheDocument();
+  expect(screen.queryByText('Export as PDF')).not.toBeInTheDocument();
+});
+
+test('A Big Number chart keeps only the image exports in Export Current View', 
async () => {
+  render(
+    <TestComponent
+      {...defaultProps}
+      latestQueryFormData={{
+        datasource: '1__table',
+        viz_type: 'big_number_total',
+      }}
+    />,
+    {
+      useRedux: true,
+      initialState: { explore: { can_export_image: true } },
+    },
+  );
+
+  await userEvent.hover(await screen.findByText('Data Export Options'));
+  await userEvent.hover(await screen.findByText('Export Current View'));
+  expect(
+    await screen.findByText('Export screenshot (jpeg)'),
+  ).toBeInTheDocument();
+  expect(screen.getByText('Export screenshot (png)')).toBeInTheDocument();
+  expect(screen.queryByText('Export to .CSV')).not.toBeInTheDocument();
+  expect(screen.queryByText('Export to Excel')).not.toBeInTheDocument();
+  expect(screen.queryByText('Export as PDF')).not.toBeInTheDocument();

Review Comment:
   Neither image-only submenu test asserts that `Export to .JSON` is gone, so 
dropping `EXPORT_TO_JSON` and `EXPORT_CURRENT_TO_JSON` from 
`DATA_AND_PDF_EXPORT_KEYS` would put JSON back under both "Export All Data" and 
"Export Current View" for a Big Number chart while all of these tests still 
pass. Could both tests also assert `screen.queryByText('Export to .JSON')` is 
not in the document?



##########
superset-frontend/src/utils/isImageOnlyExportViz.ts:
##########
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { VizType } from '@superset-ui/core';
+
+// A KPI card shows one final number: it has no table of data worth exporting, 
and a PDF
+// of it is the same picture as the PNG. These charts offer image exports 
only. Big Number with
+// Trendline is not listed: its query returns the daily series, which people 
export.
+const IMAGE_ONLY_EXPORT_VIZ_TYPES: string[] = [
+  VizType.BigNumberTotal,
+  VizType.BigNumberPeriodOverPeriod,

Review Comment:
   `pop_kpi` is not a single final number: its query takes `time_offsets` for 
each comparison period and `cols` as a group-by, and the card renders the 
current value against those comparison columns. Listing it here removes 
CSV/JSON/Excel of the current-versus-previous values in Explore and CSV/Excel 
on the dashboard, so someone who exports the numbers behind a "revenue vs. 1 
year ago" card loses the only way to get them. Should 
`BigNumberPeriodOverPeriod` stay out of this list, the same way the trendline 
chart did?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to