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

hugh 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 eb5369f2a6 fix: No back button in save dataset modal (#20964)
eb5369f2a6 is described below

commit eb5369f2a6f2dc238838119eb70194bf2b42b085
Author: AAfghahi <[email protected]>
AuthorDate: Wed Aug 3 21:29:11 2022 -0400

    fix: No back button in save dataset modal (#20964)
    
    * back button fix
    
    * fixed test
---
 .../SaveDatasetModal/SaveDatasetModal.test.tsx     | 23 +++++++++++++++++-----
 .../SqlLab/components/SaveDatasetModal/index.tsx   |  4 +++-
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git 
a/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
 
b/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
index 94017525f0..7e838a44e3 100644
--- 
a/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
+++ 
b/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
@@ -18,7 +18,13 @@
  */
 import React from 'react';
 import * as reactRedux from 'react-redux';
-import { render, screen, waitFor, within } from 'spec/helpers/testing-library';
+import {
+  render,
+  screen,
+  waitFor,
+  within,
+  cleanup,
+} from 'spec/helpers/testing-library';
 import userEvent from '@testing-library/user-event';
 import fetchMock from 'fetch-mock';
 import { SaveDatasetModal } from 'src/SqlLab/components/SaveDatasetModal';
@@ -39,7 +45,10 @@ fetchMock.get('glob:*/api/v1/dataset?*', {
 
 // Mock the user
 const useSelectorMock = jest.spyOn(reactRedux, 'useSelector');
-beforeEach(() => useSelectorMock.mockClear());
+beforeEach(() => {
+  useSelectorMock.mockClear();
+  cleanup();
+});
 
 describe('SaveDatasetModal', () => {
   it('renders a "Save as new" field', async () => {
@@ -88,7 +97,7 @@ describe('SaveDatasetModal', () => {
     expect(screen.getByRole('button', { name: /save/i })).toBeVisible();
   });
 
-  it('renders a back and overwrite button when "Overwrite existing" is 
selected', async () => {
+  it('renders an overwrite button when "Overwrite existing" is selected', 
async () => {
     render(<SaveDatasetModal {...mockedProps} />, { useRedux: true });
 
     // Click the overwrite radio button to reveal the overwrite confirmation 
and back buttons
@@ -97,11 +106,10 @@ describe('SaveDatasetModal', () => {
     });
     userEvent.click(overwriteRadioBtn);
 
-    expect(screen.getByRole('button', { name: /back/i })).toBeVisible();
     expect(screen.getByRole('button', { name: /overwrite/i })).toBeVisible();
   });
 
-  it('renders the overwrite button as disabled until an existing dataset is 
selected', async () => {
+  it('renders the overwrite button as disabled until an existing dataset is 
selected, confirms overwrite', async () => {
     useSelectorMock.mockReturnValue({ ...user });
     render(<SaveDatasetModal {...mockedProps} />, { useRedux: true });
 
@@ -131,5 +139,10 @@ describe('SaveDatasetModal', () => {
 
     // Overwrite button should now be enabled
     expect(overwriteConfirmationBtn).toBeEnabled();
+
+    // Check Overwrite confirmation functionality
+    userEvent.click(overwriteConfirmationBtn);
+    expect(screen.getByRole('button', { name: /back/i })).toBeVisible();
+    expect(screen.getByRole('button', { name: /overwrite/i })).toBeVisible();
   });
 });
diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx 
b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
index 12922ef79d..6d6acf8af9 100644
--- a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
@@ -357,7 +357,9 @@ export const SaveDatasetModal: 
FunctionComponent<SaveDatasetModalProps> = ({
           )}
           {newOrOverwrite === DatasetRadioState.OVERWRITE_DATASET && (
             <>
-              <Button onClick={handleOverwriteCancel}>Back</Button>
+              {shouldOverwriteDataset && (
+                <Button onClick={handleOverwriteCancel}>Back</Button>
+              )}
               <Button
                 className="md"
                 buttonStyle="primary"

Reply via email to