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

[superset] 01/01: initial push

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

aafghahi pushed a commit to branch LA/testList
in repository https://gitbox.apache.org/repos/asf/superset.git

commit ef841c78d506f6eb9b2d96b6c08ddf62fde6d4e2
Author: AAfghahi <ar...@gmail.com>
AuthorDate: Thu Aug 4 17:04:00 2022 -0400

    initial push
---
 .../SaveDatasetModal/SaveDatasetModal.test.tsx     | 44 ++++++++++++++++++++--
 1 file changed, 41 insertions(+), 3 deletions(-)

diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
index 7e838a44e3..8c05f702bc 100644
--- a/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
@@ -24,6 +24,7 @@ import {
   waitFor,
   within,
   cleanup,
+  act,
 } from 'spec/helpers/testing-library';
 import userEvent from '@testing-library/user-event';
 import fetchMock from 'fetch-mock';
@@ -109,7 +110,7 @@ describe('SaveDatasetModal', () => {
     expect(screen.getByRole('button', { name: /overwrite/i })).toBeVisible();
   });
 
-  it('renders the overwrite button as disabled until an existing dataset is selected, confirms overwrite', async () => {
+  it('renders the overwrite button as disabled until an existing dataset is selected, confirms overwrite', () => {
     useSelectorMock.mockReturnValue({ ...user });
     render(<SaveDatasetModal {...mockedProps} />, { useRedux: true });
 
@@ -117,7 +118,7 @@ describe('SaveDatasetModal', () => {
     const overwriteRadioBtn = screen.getByRole('radio', {
       name: /overwrite existing/i,
     });
-    await waitFor(async () => {
+    act(() => {
       userEvent.click(overwriteRadioBtn);
     });
 
@@ -129,7 +130,7 @@ describe('SaveDatasetModal', () => {
 
     // Click the select component
     const select = screen.getByRole('combobox', { name: /existing dataset/i })!;
-    await waitFor(async () => userEvent.click(select));
+    act(() => userEvent.click(select));
 
     // Select the first "existing dataset" from the listbox
     const option = within(
@@ -145,4 +146,41 @@ describe('SaveDatasetModal', () => {
     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, confirms overwrite', async () => {
+    useSelectorMock.mockReturnValue({ ...user });
+    render(<SaveDatasetModal {...mockedProps} />, { useRedux: true });
+
+    // Click the overwrite radio button
+    const overwriteRadioBtn = screen.getByRole('radio', {
+      name: /overwrite existing/i,
+    });
+    act(() => {
+      userEvent.click(overwriteRadioBtn);
+    });
+
+    // Overwrite confirmation button should be disabled at this point
+    const overwriteConfirmationBtn = screen.getByRole('button', {
+      name: /overwrite/i,
+    });
+    expect(overwriteConfirmationBtn).toBeDisabled();
+
+    // Click the select component
+    const select = screen.getByRole('combobox', { name: /existing dataset/i })!;
+    act(() => userEvent.click(select));
+
+    // Select the first "existing dataset" from the listbox
+
+    const list = await within(document.querySelector('.rc-virtual-list')!);
+    const option = await list.findByText('coolest table 0')!;
+    userEvent.click(option);
+
+    // 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();
+  });
 });