fix(sqllab): close the table tab (#32224)
This commit is contained in:
parent
319a860f23
commit
937d40cdde
|
|
@ -16,11 +16,12 @@
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
import { render } from 'spec/helpers/testing-library';
|
import { render, waitFor, within } from 'spec/helpers/testing-library';
|
||||||
import SouthPane from 'src/SqlLab/components/SouthPane';
|
import SouthPane from 'src/SqlLab/components/SouthPane';
|
||||||
import { STATUS_OPTIONS } from 'src/SqlLab/constants';
|
import { STATUS_OPTIONS } from 'src/SqlLab/constants';
|
||||||
import { initialState, table, defaultQueryEditor } from 'src/SqlLab/fixtures';
|
import { initialState, table, defaultQueryEditor } from 'src/SqlLab/fixtures';
|
||||||
import { denormalizeTimestamp } from '@superset-ui/core';
|
import { denormalizeTimestamp } from '@superset-ui/core';
|
||||||
|
import userEvent from '@testing-library/user-event';
|
||||||
|
|
||||||
const mockedProps = {
|
const mockedProps = {
|
||||||
queryEditorId: defaultQueryEditor.id,
|
queryEditorId: defaultQueryEditor.id,
|
||||||
|
|
@ -48,12 +49,14 @@ const mockState = {
|
||||||
tables: [
|
tables: [
|
||||||
{
|
{
|
||||||
...table,
|
...table,
|
||||||
|
id: 't3',
|
||||||
name: 'table3',
|
name: 'table3',
|
||||||
dataPreviewQueryId: '2g2_iRFMl',
|
dataPreviewQueryId: '2g2_iRFMl',
|
||||||
queryEditorId: defaultQueryEditor.id,
|
queryEditorId: defaultQueryEditor.id,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
...table,
|
...table,
|
||||||
|
id: 't4',
|
||||||
name: 'table4',
|
name: 'table4',
|
||||||
dataPreviewQueryId: 'erWdqEWPm',
|
dataPreviewQueryId: 'erWdqEWPm',
|
||||||
queryEditorId: defaultQueryEditor.id,
|
queryEditorId: defaultQueryEditor.id,
|
||||||
|
|
@ -148,3 +151,22 @@ test('should render tabs for table metadata view', () => {
|
||||||
expect(tabs[index + 2]).toHaveTextContent(`${schema}.${name}`);
|
expect(tabs[index + 2]).toHaveTextContent(`${schema}.${name}`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should remove tab', async () => {
|
||||||
|
const { getAllByRole } = await render(<SouthPane {...mockedProps} />, {
|
||||||
|
useRedux: true,
|
||||||
|
initialState: mockState,
|
||||||
|
});
|
||||||
|
|
||||||
|
const tabs = getAllByRole('tab');
|
||||||
|
const totalTabs = mockState.sqlLab.tables.length + 2;
|
||||||
|
expect(tabs).toHaveLength(totalTabs);
|
||||||
|
const removeButton = within(tabs[2].parentElement as HTMLElement).getByRole(
|
||||||
|
'button',
|
||||||
|
{
|
||||||
|
name: /remove/,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
userEvent.click(removeButton);
|
||||||
|
await waitFor(() => expect(getAllByRole('tab')).toHaveLength(totalTabs - 1));
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ const SouthPane = ({
|
||||||
dispatch(removeTables([table]));
|
dispatch(removeTables([table]));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[dispatch, queryEditorId],
|
[dispatch, pinnedTables],
|
||||||
);
|
);
|
||||||
|
|
||||||
return offline ? (
|
return offline ? (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue