From 00b9e3df366e27abb780ad09ef64274f0c24f680 Mon Sep 17 00:00:00 2001 From: John Bodley <4567245+john-bodley@users.noreply.github.com> Date: Fri, 16 Sep 2022 14:18:03 -0700 Subject: [PATCH] fix: Address regression introduced in #21284 (#21470) Co-authored-by: Elizabeth Thompson (cherry picked from commit 8c16806f5759ecc53ecef88a2e96e2e0964bffc6) --- .../src/components/TableSelector/index.tsx | 2 +- .../src/hooks/apiResources/tables.test.ts | 31 ++----------------- .../src/hooks/apiResources/tables.ts | 11 +++---- .../dataset/AddDataset/LeftPanel/index.tsx | 6 ++-- 4 files changed, 9 insertions(+), 41 deletions(-) diff --git a/superset-frontend/src/components/TableSelector/index.tsx b/superset-frontend/src/components/TableSelector/index.tsx index acf9f67f7cdb2..691590b95e4b3 100644 --- a/superset-frontend/src/components/TableSelector/index.tsx +++ b/superset-frontend/src/components/TableSelector/index.tsx @@ -196,7 +196,7 @@ const TableSelector: FunctionComponent = ({ ? data.options.map(table => ({ value: table.value, label: , - text: table.label, + text: table.value, })) : [], [data], diff --git a/superset-frontend/src/hooks/apiResources/tables.test.ts b/superset-frontend/src/hooks/apiResources/tables.test.ts index 11afef6b12c1a..6ff19cb401fb3 100644 --- a/superset-frontend/src/hooks/apiResources/tables.test.ts +++ b/superset-frontend/src/hooks/apiResources/tables.test.ts @@ -103,7 +103,7 @@ describe('useTables hook', () => { }); expect(SupersetClient.get).toHaveBeenCalledTimes(1); expect(SupersetClient.get).toHaveBeenCalledWith({ - endpoint: `/superset/tables/${expectDbId}/${expectedSchema}/undefined/${forceRefresh}/`, + endpoint: `/superset/tables/${expectDbId}/${expectedSchema}/${forceRefresh}/`, }); expect(result.current.data).toEqual(expectedData); await act(async () => { @@ -111,38 +111,11 @@ describe('useTables hook', () => { }); expect(SupersetClient.get).toHaveBeenCalledTimes(2); expect(SupersetClient.get).toHaveBeenCalledWith({ - endpoint: `/superset/tables/${expectDbId}/${expectedSchema}/undefined/true/`, + endpoint: `/superset/tables/${expectDbId}/${expectedSchema}/true/`, }); expect(result.current.data).toEqual(expectedData); }); - it('returns api response for search keyword', async () => { - const expectDbId = 'db1'; - const expectedSchema = 'schemaA'; - const expectedKeyword = 'my work'; - const forceRefresh = false; - renderHook( - () => - useTables({ - dbId: expectDbId, - schema: expectedSchema, - keyword: expectedKeyword, - }), - { - wrapper: QueryProvider, - }, - ); - await act(async () => { - jest.runAllTimers(); - }); - expect(SupersetClient.get).toHaveBeenCalledTimes(1); - expect(SupersetClient.get).toHaveBeenCalledWith({ - endpoint: `/superset/tables/${expectDbId}/${expectedSchema}/${encodeURIComponent( - expectedKeyword, - )}/${forceRefresh}/`, - }); - }); - it('returns hasMore when total is larger than result size', async () => { (SupersetClient.get as jest.Mock).mockResolvedValueOnce( fakeHasMoreApiResult, diff --git a/superset-frontend/src/hooks/apiResources/tables.ts b/superset-frontend/src/hooks/apiResources/tables.ts index 80dd5001aceac..994a7380f496f 100644 --- a/superset-frontend/src/hooks/apiResources/tables.ts +++ b/superset-frontend/src/hooks/apiResources/tables.ts @@ -24,7 +24,6 @@ export type FetchTablesQueryParams = { dbId?: string | number; schema?: string; forceRefresh?: boolean; - keyword?: string; }; export interface Table { label: string; @@ -52,14 +51,12 @@ export function fetchTables({ dbId, schema, forceRefresh, - keyword, }: FetchTablesQueryParams) { const encodedSchema = schema ? encodeURIComponent(schema) : ''; - const encodedKeyword = keyword ? encodeURIComponent(keyword) : 'undefined'; // TODO: Would be nice to add pagination in a follow-up. Needs endpoint changes. const endpoint = `/superset/tables/${ dbId ?? 'undefined' - }/${encodedSchema}/${encodedKeyword}/${forceRefresh}/`; + }/${encodedSchema}/${forceRefresh}/`; return SupersetClient.get({ endpoint }) as Promise; } @@ -67,11 +64,11 @@ type Params = FetchTablesQueryParams & Pick; export function useTables(options: Params) { - const { dbId, schema, keyword, onSuccess, onError } = options || {}; + const { dbId, schema, onSuccess, onError } = options || {}; const forceRefreshRef = useRef(false); - const params = { dbId, schema, keyword }; + const params = { dbId, schema }; const result = useQuery( - ['tables', { dbId, schema, keyword }], + ['tables', { dbId, schema }], () => fetchTables({ ...params, forceRefresh: forceRefreshRef.current }), { select: ({ json }) => ({ diff --git a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx index 9d79d5cc8f6e9..1b40e42299a45 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/AddDataset/LeftPanel/index.tsx @@ -172,7 +172,7 @@ export default function LeftPanel({ useEffect(() => { if (loadTables) { const endpoint = encodeURI( - `/superset/tables/${dbId}/${encodedSchema}/undefined/${refresh}/`, + `/superset/tables/${dbId}/${encodedSchema}/${refresh}/`, ); getTablesList(endpoint); } @@ -188,10 +188,8 @@ export default function LeftPanel({ const search = useMemo( () => debounce((value: string) => { - const encodeTableName = - value === '' ? undefined : encodeURIComponent(value); const endpoint = encodeURI( - `/superset/tables/${dbId}/${encodedSchema}/${encodeTableName}/`, + `/superset/tables/${dbId}/${encodedSchema}/`, ); getTablesList(endpoint); }, FAST_DEBOUNCE),