You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2024/03/26 17:19:56 UTC
(superset) branch master updated: fix(sqllab): unable to remove table (#27636)
This is an automated email from the ASF dual-hosted git repository.
johnbodley 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 fa3fea9dd8 fix(sqllab): unable to remove table (#27636)
fa3fea9dd8 is described below
commit fa3fea9dd811d3cfdbbfe93f31d34992e603ec60
Author: JUST.in DO IT <ju...@airbnb.com>
AuthorDate: Tue Mar 26 10:19:50 2024 -0700
fix(sqllab): unable to remove table (#27636)
---
superset-frontend/src/SqlLab/actions/sqlLab.js | 8 +++++---
.../src/SqlLab/actions/sqlLab.test.js | 24 ++++++++++++++++++++--
2 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/superset-frontend/src/SqlLab/actions/sqlLab.js b/superset-frontend/src/SqlLab/actions/sqlLab.js
index e96198a0ea..fa5198e532 100644
--- a/superset-frontend/src/SqlLab/actions/sqlLab.js
+++ b/superset-frontend/src/SqlLab/actions/sqlLab.js
@@ -1131,9 +1131,11 @@ export function removeTables(tables) {
const sync = isFeatureEnabled(FeatureFlag.SqllabBackendPersistence)
? Promise.all(
tablesToRemove.map(table =>
- SupersetClient.delete({
- endpoint: encodeURI(`/tableschemaview/${table.id}`),
- }),
+ table.initialized
+ ? SupersetClient.delete({
+ endpoint: encodeURI(`/tableschemaview/${table.id}`),
+ })
+ : Promise.resolve(),
),
)
: Promise.resolve();
diff --git a/superset-frontend/src/SqlLab/actions/sqlLab.test.js b/superset-frontend/src/SqlLab/actions/sqlLab.test.js
index dd48ed8c7b..20fd53ad38 100644
--- a/superset-frontend/src/SqlLab/actions/sqlLab.test.js
+++ b/superset-frontend/src/SqlLab/actions/sqlLab.test.js
@@ -883,7 +883,7 @@ describe('async actions', () => {
it('updates the table schema state in the backend', () => {
expect.assertions(2);
- const table = { id: 1 };
+ const table = { id: 1, initialized: true };
const store = mockStore({});
const expectedActions = [
{
@@ -900,7 +900,10 @@ describe('async actions', () => {
it('deletes multiple tables and updates the table schema state in the backend', () => {
expect.assertions(2);
- const tables = [{ id: 1 }, { id: 2 }];
+ const tables = [
+ { id: 1, initialized: true },
+ { id: 2, initialized: true },
+ ];
const store = mockStore({});
const expectedActions = [
{
@@ -913,6 +916,23 @@ describe('async actions', () => {
expect(fetchMock.calls(updateTableSchemaEndpoint)).toHaveLength(2);
});
});
+
+ it('only updates the initialized table schema state in the backend', () => {
+ expect.assertions(2);
+
+ const tables = [{ id: 1 }, { id: 2, initialized: true }];
+ const store = mockStore({});
+ const expectedActions = [
+ {
+ type: actions.REMOVE_TABLES,
+ tables,
+ },
+ ];
+ return store.dispatch(actions.removeTables(tables)).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ expect(fetchMock.calls(updateTableSchemaEndpoint)).toHaveLength(1);
+ });
+ });
});
describe('migrateQueryEditorFromLocalStorage', () => {