You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by yo...@apache.org on 2022/04/08 09:32:36 UTC

[superset] branch master updated: chore: cleanup as unknown conversion (#19587)

This is an automated email from the ASF dual-hosted git repository.

yongjiezhao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 761d5c4208 chore: cleanup as unknown conversion (#19587)
761d5c4208 is described below

commit 761d5c4208632a1c186cf4c9fbcf2541a816fea8
Author: Yongjie Zhao <yo...@gmail.com>
AuthorDate: Fri Apr 8 17:32:29 2022 +0800

    chore: cleanup as unknown conversion (#19587)
---
 .../cypress-base/cypress/utils/parsePostForm.ts    |  2 +-
 .../packages/superset-ui-core/src/color/utils.ts   | 13 +++--
 .../superset-ui-core/test/color/utils.test.ts      | 14 ++++++
 .../test/models/ExtensibleFunction.test.ts         |  2 +-
 .../test/query/buildQueryObject.test.ts            |  3 +-
 .../stories/plugins/plugin-chart-table/testData.ts |  2 +-
 .../src/Timeseries/transformers.ts                 |  2 +-
 .../src/SqlLab/components/QuerySearch/index.tsx    |  6 +--
 .../util/getFormDataWithExtraFilters.test.ts       | 18 +------
 .../src/dashboard/util/injectCustomCss.ts          |  2 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |  3 +-
 .../PropertiesModal/PropertiesModal.test.tsx       | 58 ++++++----------------
 .../src/explore/controlUtils/controlUtils.test.tsx | 16 ++++--
 .../CRUD/data/database/DatabaseModal/index.tsx     | 12 ++---
 .../src/views/CRUD/data/database/types.ts          |  2 +-
 15 files changed, 70 insertions(+), 85 deletions(-)

diff --git a/superset-frontend/cypress-base/cypress/utils/parsePostForm.ts b/superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
index 0a818d18d5..2d85a8681a 100644
--- a/superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
+++ b/superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
@@ -22,7 +22,7 @@
 export default function parsePostForm(requestBody: ArrayBuffer) {
   type ParsedFields = Record<string, string[] | string>;
   if (requestBody.constructor.name !== 'ArrayBuffer') {
-    return requestBody as unknown as ParsedFields;
+    return requestBody;
   }
   const lines = new TextDecoder('utf-8').decode(requestBody).split('\n');
   const fields: ParsedFields = {};
diff --git a/superset-frontend/packages/superset-ui-core/src/color/utils.ts b/superset-frontend/packages/superset-ui-core/src/color/utils.ts
index f81a554690..1b362efe3e 100644
--- a/superset-frontend/packages/superset-ui-core/src/color/utils.ts
+++ b/superset-frontend/packages/superset-ui-core/src/color/utils.ts
@@ -75,7 +75,14 @@ export function getAnalogousColors(colors: string[], results: number) {
 }
 
 export function addAlpha(color: string, opacity: number): string {
-  // coerce values so ti is between 0 and 1.
-  const rounded = Math.round(Math.min(Math.max(opacity || 1, 0), 1) * 255);
-  return color + rounded.toString(16).toUpperCase();
+  // opacity value should be between 0 and 1.
+  if (opacity > 1 || opacity < 0) {
+    throw new Error(`The opacity should between 0 and 1, but got: ${opacity}`);
+  }
+  // the alpha value is between 00 - FF
+  const alpha = `0${Math.round(opacity * 255)
+    .toString(16)
+    .toUpperCase()}`.slice(-2);
+
+  return `${color}${alpha}`;
 }
diff --git a/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts b/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts
index e203b94d8f..308eec726b 100644
--- a/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts
+++ b/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts
@@ -67,5 +67,19 @@ describe('color utils', () => {
     it('adds 50% opacity to white', () => {
       expect(addAlpha('#FFFFFF', 0.5)).toBe('#FFFFFF80');
     });
+    it('should apply transparent alpha', () => {
+      expect(addAlpha('#000000', 0)).toBe('#00000000');
+    });
+    it('should apply fully opaque', () => {
+      expect(addAlpha('#000000', 1)).toBe('#000000FF');
+    });
+    it('opacity should be between 0 and 1', () => {
+      expect(() => {
+        addAlpha('#000000', 2);
+      }).toThrow();
+      expect(() => {
+        addAlpha('#000000', -1);
+      }).toThrow();
+    });
   });
 });
diff --git a/superset-frontend/packages/superset-ui-core/test/models/ExtensibleFunction.test.ts b/superset-frontend/packages/superset-ui-core/test/models/ExtensibleFunction.test.ts
index 3f8c38e1ae..931989853d 100644
--- a/superset-frontend/packages/superset-ui-core/test/models/ExtensibleFunction.test.ts
+++ b/superset-frontend/packages/superset-ui-core/test/models/ExtensibleFunction.test.ts
@@ -55,7 +55,7 @@ describe('ExtensibleFunction', () => {
       // @ts-ignore
       super(function customName() {
         // @ts-ignore
-        return customName.x as unknown;
+        return customName.x;
       }); // named function
       this.x = x;
     }
diff --git a/superset-frontend/packages/superset-ui-core/test/query/buildQueryObject.test.ts b/superset-frontend/packages/superset-ui-core/test/query/buildQueryObject.test.ts
index b8da644653..321e2a8401 100644
--- a/superset-frontend/packages/superset-ui-core/test/query/buildQueryObject.test.ts
+++ b/superset-frontend/packages/superset-ui-core/test/query/buildQueryObject.test.ts
@@ -285,7 +285,8 @@ describe('buildQueryObject', () => {
         datasource: '5__table',
         granularity_sqla: 'ds',
         viz_type: 'table',
-        url_params: null as unknown as undefined,
+        // @ts-expect-error
+        url_params: null,
       }).url_params,
     ).toBeUndefined();
   });
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/testData.ts b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/testData.ts
index 2a54c2a4da..fd5245f691 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/testData.ts
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/testData.ts
@@ -25,7 +25,7 @@ import {
 // eslint-disable-next-line import/extensions
 import birthNamesJson from './birthNames.json';
 
-export const birthNames = birthNamesJson as unknown as TableChartProps;
+export const birthNames = birthNamesJson as TableChartProps;
 
 export const basicFormData: TableChartFormData = {
   datasource: '1__table',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
index 7ce72695be..7e8dbf855c 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
@@ -357,7 +357,7 @@ export function transformEventAnnotation(
     const eventData: MarkLine1DDataItemOption[] = [
       {
         name: label,
-        xAxis: time as unknown as number,
+        xAxis: time,
       },
     ];
 
diff --git a/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx b/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
index ae2562207e..762f35e898 100644
--- a/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
@@ -226,7 +226,7 @@ function QuerySearch({ actions, displayLimit }: QuerySearchProps) {
               value: xt,
               label: xt,
             }))}
-            value={from as unknown as undefined}
+            value={{ value: from, label: from }}
             autosize={false}
             onChange={(selected: any) => setFrom(selected?.value)}
           />
@@ -235,7 +235,7 @@ function QuerySearch({ actions, displayLimit }: QuerySearchProps) {
             name="select-to"
             placeholder={t('[To]-')}
             options={TIME_OPTIONS.map(xt => ({ value: xt, label: xt }))}
-            value={to as unknown as undefined}
+            value={{ value: to, label: to }}
             autosize={false}
             onChange={(selected: any) => setTo(selected?.value)}
           />
@@ -247,7 +247,7 @@ function QuerySearch({ actions, displayLimit }: QuerySearchProps) {
               value: s,
               label: s,
             }))}
-            value={status as unknown as undefined}
+            value={{ value: status, label: status }}
             isLoading={false}
             autosize={false}
             onChange={(selected: any) => setStatus(selected?.value)}
diff --git a/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts b/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts
index 0756ef03b3..fda5edc1a9 100644
--- a/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts
+++ b/superset-frontend/src/dashboard/util/getFormDataWithExtraFilters.test.ts
@@ -16,13 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Filter } from '@superset-ui/core';
 import getFormDataWithExtraFilters, {
   GetFormDataWithExtraFiltersArguments,
 } from 'src/dashboard/util/charts/getFormDataWithExtraFilters';
-import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants';
-import { LayoutItem } from 'src/dashboard/types';
-import { dashboardLayout } from 'spec/fixtures/mockDashboardLayout';
 import { sliceId as chartId } from 'spec/fixtures/mockChartQueries';
 
 describe('getFormDataWithExtraFilters', () => {
@@ -63,16 +59,8 @@ describe('getFormDataWithExtraFilters', () => {
     },
     sliceId: chartId,
     nativeFilters: {
+      filters: {},
       filterSets: {},
-      filters: {
-        [filterId]: {
-          id: filterId,
-          scope: {
-            rootPath: [DASHBOARD_ROOT_ID],
-            excluded: [],
-          },
-        } as unknown as Filter,
-      },
     },
     dataMask: {
       [filterId]: {
@@ -82,9 +70,7 @@ describe('getFormDataWithExtraFilters', () => {
         ownState: {},
       },
     },
-    layout: dashboardLayout.present as unknown as {
-      [key: string]: LayoutItem;
-    },
+    layout: {},
   };
 
   it('should include filters from the passed filters', () => {
diff --git a/superset-frontend/src/dashboard/util/injectCustomCss.ts b/superset-frontend/src/dashboard/util/injectCustomCss.ts
index 36b3f4d762..43cb66f7d9 100644
--- a/superset-frontend/src/dashboard/util/injectCustomCss.ts
+++ b/superset-frontend/src/dashboard/util/injectCustomCss.ts
@@ -40,7 +40,7 @@ export default function injectCustomCss(css: string) {
     document.querySelector(`.${className}`) || createStyleElement(className);
 
   if ('styleSheet' in style) {
-    (style as unknown as MysteryStyleElement).styleSheet.cssText = css;
+    (style as HTMLStyleElement & MysteryStyleElement).styleSheet.cssText = css;
   } else {
     style.innerHTML = css;
   }
diff --git a/superset-frontend/src/explore/components/ExploreChartHeader/ExploreChartHeader.test.tsx b/superset-frontend/src/explore/components/ExploreChartHeader/ExploreChartHeader.test.tsx
index 35dc9eb384..3c90d4650d 100644
--- a/superset-frontend/src/explore/components/ExploreChartHeader/ExploreChartHeader.test.tsx
+++ b/superset-frontend/src/explore/components/ExploreChartHeader/ExploreChartHeader.test.tsx
@@ -18,7 +18,6 @@
  */
 
 import React from 'react';
-import { Slice } from 'src/types/Chart';
 import { render, screen } from 'spec/helpers/testing-library';
 import userEvent from '@testing-library/user-event';
 import ExploreHeader from '.';
@@ -80,7 +79,7 @@ const createProps = () => ({
     slice_id: 318,
     slice_name: 'Age distribution of respondents',
     slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20318%7D',
-  } as unknown as Slice,
+  },
   slice_name: 'Age distribution of respondents',
   actions: {
     postChartFormData: () => null,
diff --git a/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx b/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx
index f9cdca0277..4ea1327603 100644
--- a/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx
+++ b/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx
@@ -18,57 +18,27 @@
  */
 
 import React from 'react';
-import { Slice } from 'src/types/Chart';
 import { render, screen, waitFor } from 'spec/helpers/testing-library';
 import fetchMock from 'fetch-mock';
 import userEvent from '@testing-library/user-event';
 import PropertiesModal, { PropertiesModalProps } from '.';
 
-const createProps = () => ({
-  slice: {
-    cache_timeout: null,
-    certified_by: 'John Doe',
-    certification_details: 'Sample certification',
-    changed_on: '2021-03-19T16:30:56.750230',
-    changed_on_humanized: '7 days ago',
-    datasource: 'FCC 2018 Survey',
-    description: null,
-    description_markeddown: '',
-    edit_url: '/chart/edit/318',
-    form_data: {
-      adhoc_filters: [],
-      all_columns_x: ['age'],
-      color_scheme: 'supersetColors',
-      datasource: '49__table',
-      granularity_sqla: 'time_start',
-      groupby: null,
-      label_colors: {},
-      link_length: '25',
-      queryFields: { groupby: 'groupby' },
-      row_limit: 10000,
+const createProps = () =>
+  ({
+    slice: {
+      cache_timeout: null,
+      certified_by: 'John Doe',
+      certification_details: 'Sample certification',
+      description: null,
       slice_id: 318,
-      time_range: 'No filter',
-      url_params: {},
-      viz_type: 'histogram',
-      x_axis_label: 'age',
-      y_axis_label: 'count',
+      slice_name: 'Age distribution of respondents',
+      is_managed_externally: false,
     },
-    modified: '<span class="no-wrap">7 days ago</span>',
-    owners: [
-      {
-        text: 'Superset Admin',
-        value: 1,
-      },
-    ],
-    slice_id: 318,
-    slice_name: 'Age distribution of respondents',
-    slice_url: '/superset/explore/?form_data=%7B%22slice_id%22%3A%20318%7D',
-  } as unknown as Slice,
-  show: true,
-  onHide: jest.fn(),
-  onSave: jest.fn(),
-  addSuccessToast: jest.fn(),
-});
+    show: true,
+    onHide: jest.fn(),
+    onSave: jest.fn(),
+    addSuccessToast: jest.fn(),
+  } as PropertiesModalProps);
 
 fetchMock.get('glob:*/api/v1/chart/318', {
   body: {
diff --git a/superset-frontend/src/explore/controlUtils/controlUtils.test.tsx b/superset-frontend/src/explore/controlUtils/controlUtils.test.tsx
index ac8dcef7a5..1b9cf1ea55 100644
--- a/superset-frontend/src/explore/controlUtils/controlUtils.test.tsx
+++ b/superset-frontend/src/explore/controlUtils/controlUtils.test.tsx
@@ -16,12 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { getChartControlPanelRegistry, t } from '@superset-ui/core';
+import {
+  DatasourceType,
+  getChartControlPanelRegistry,
+  t,
+} from '@superset-ui/core';
 import {
   ControlConfig,
   ControlPanelState,
   CustomControlItem,
-  DatasourceMeta,
 } from '@superset-ui/chart-controls';
 import {
   getControlConfig,
@@ -44,9 +47,16 @@ const getKnownControlState = (...args: Parameters<typeof getControlState>) =>
 describe('controlUtils', () => {
   const state: ControlPanelState = {
     datasource: {
+      id: 1,
+      type: DatasourceType.Table,
       columns: [{ column_name: 'a' }],
       metrics: [{ metric_name: 'first' }, { metric_name: 'second' }],
-    } as unknown as DatasourceMeta,
+      column_format: {},
+      verbose_map: {},
+      main_dttm_col: '',
+      datasource_name: '1__table',
+      description: null,
+    },
     controls: {},
     form_data: { datasource: '1__table', viz_type: 'table' },
   };
diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
index 612a566923..c39feaee18 100644
--- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
+++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
@@ -371,11 +371,11 @@ function dbReducer(
         action.payload.configuration_method ===
           CONFIGURATION_METHOD.DYNAMIC_FORM
       ) {
-        const engineParamsCatalog = Object.keys(
+        const engineParamsCatalog = Object.entries(
           extra_json?.engine_params?.catalog || {},
-        ).map(e => ({
-          name: e,
-          value: extra_json?.engine_params?.catalog[e],
+        ).map(([key, value]) => ({
+          name: key,
+          value,
         }));
         return {
           ...action.payload,
@@ -418,9 +418,7 @@ const serializeExtra = (extraJson: DatabaseObject['extra_json']) =>
   JSON.stringify({
     ...extraJson,
     metadata_params: JSON.parse((extraJson?.metadata_params as string) || '{}'),
-    engine_params: JSON.parse(
-      (extraJson?.engine_params as unknown as string) || '{}',
-    ),
+    engine_params: JSON.parse((extraJson?.engine_params as string) || '{}'),
     schemas_allowed_for_file_upload: (
       extraJson?.schemas_allowed_for_file_upload || []
     ).filter(schema => schema !== ''),
diff --git a/superset-frontend/src/views/CRUD/data/database/types.ts b/superset-frontend/src/views/CRUD/data/database/types.ts
index f8e1a7806e..d48fa956e2 100644
--- a/superset-frontend/src/views/CRUD/data/database/types.ts
+++ b/superset-frontend/src/views/CRUD/data/database/types.ts
@@ -79,7 +79,7 @@ export type DatabaseObject = {
   // Extra
   extra_json?: {
     engine_params?: {
-      catalog: Record<any, any> | string;
+      catalog?: Record<any, any> | string;
     };
     metadata_params?: {} | string;
     metadata_cache_timeout?: {