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 <[email protected]> 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(); + }); });
