diff --git a/superset-frontend/spec/fixtures/mockDashboardState.js b/superset-frontend/spec/fixtures/mockDashboardState.js
index 619d68fb2fbf5..49b71053710a8 100644
--- a/superset-frontend/spec/fixtures/mockDashboardState.js
+++ b/superset-frontend/spec/fixtures/mockDashboardState.js
@@ -28,4 +28,5 @@ export default {
isPublished: true,
css: '',
focusedFilterField: null,
+ refreshFrequency: 0,
};
diff --git a/superset-frontend/spec/fixtures/mockState.js b/superset-frontend/spec/fixtures/mockState.js
index 3c7627b73f593..1f1e6c4d2a06a 100644
--- a/superset-frontend/spec/fixtures/mockState.js
+++ b/superset-frontend/spec/fixtures/mockState.js
@@ -24,11 +24,11 @@ import { dashboardLayout } from './mockDashboardLayout';
import dashboardInfo from './mockDashboardInfo';
import { emptyFilters } from './mockDashboardFilters';
import dashboardState from './mockDashboardState';
-import sliceEntities from './mockSliceEntities';
+import { sliceEntitiesForChart } from './mockSliceEntities';
export default {
datasources,
- sliceEntities,
+ sliceEntities: sliceEntitiesForChart,
charts: chartQueries,
nativeFilters: nativeFiltersInfo,
dashboardInfo,
diff --git a/superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx b/superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx
index 14b12a154c550..f939d7aef4114 100644
--- a/superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx
+++ b/superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx
@@ -160,9 +160,13 @@ describe('AlteredSliceTag', () => {
);
const rows = getTableWrapperFromModalBody(modalBody).find('tr');
expect(rows).toHaveLength(8);
- const fakeRow = mount(
{rows.get(1)}
);
- expect(fakeRow.find('tr')).toHaveLength(1);
- expect(fakeRow.find('td')).toHaveLength(3);
+ const slice = mount(
+ ,
+ );
+ expect(slice.find('tr')).toHaveLength(1);
+ expect(slice.find('td')).toHaveLength(3);
});
});
diff --git a/superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx b/superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx
index 6abdb7aacedd2..2d158cf2c7e80 100644
--- a/superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx
+++ b/superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx
@@ -19,6 +19,7 @@
import React from 'react';
import { mount } from 'enzyme';
import Button from 'src/components/Button';
+import { act } from 'react-dom/test-utils';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import ConfirmStatusChange from 'src/components/ConfirmStatusChange';
import Modal from 'src/common/components/Modal';
@@ -44,7 +45,9 @@ describe('ConfirmStatusChange', () => {
);
it('opens a confirm modal', () => {
- wrapper.find('#btn1').first().props().onClick('foo');
+ act(() => {
+ wrapper.find('#btn1').first().props().onClick('foo');
+ });
wrapper.update();
@@ -52,7 +55,9 @@ describe('ConfirmStatusChange', () => {
});
it('calls the function on confirm', () => {
- wrapper.find(Button).last().props().onClick();
+ act(() => {
+ wrapper.find(Button).last().props().onClick();
+ });
expect(mockedProps.onConfirm).toHaveBeenCalledWith('foo');
});
diff --git a/superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx b/superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx
index 41824bfe3f807..866b8a35aca79 100644
--- a/superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx
+++ b/superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx
@@ -150,37 +150,40 @@ describe('ListView', () => {
it('calls fetchData on mount', () => {
expect(wrapper.find(ListView)).toExist();
- expect(mockedProps.fetchData.mock.calls[0]).toMatchInlineSnapshot(`
- Array [
- Object {
- "filters": Array [],
- "pageIndex": 0,
- "pageSize": 1,
- "sortBy": Array [],
- },
- ]
- `);
+ expect(mockedProps.fetchData.mock.calls[0]).toMatchInlineSnapshot(
+ `
+ Array [
+ Object {
+ "filters": Array [],
+ "pageIndex": 0,
+ "pageSize": 1,
+ "sortBy": Array [],
+ },
+ ]
+ `,
+ );
});
it('calls fetchData on sort', () => {
wrapper.find('[data-test="sort-header"]').at(1).simulate('click');
-
expect(mockedProps.fetchData).toHaveBeenCalled();
- expect(mockedProps.fetchData.mock.calls[0]).toMatchInlineSnapshot(`
- Array [
- Object {
- "filters": Array [],
- "pageIndex": 0,
- "pageSize": 1,
- "sortBy": Array [
- Object {
- "desc": false,
- "id": "id",
- },
- ],
- },
- ]
- `);
+ expect(mockedProps.fetchData.mock.calls[0]).toMatchInlineSnapshot(
+ `
+ Array [
+ Object {
+ "filters": Array [],
+ "pageIndex": 0,
+ "pageSize": 1,
+ "sortBy": Array [
+ Object {
+ "desc": false,
+ "id": "id",
+ },
+ ],
+ },
+ ]
+ `,
+ );
});
it('renders pagination controls', () => {
@@ -363,13 +366,14 @@ describe('ListView', () => {
);
});
- it('renders and empty state when there is no data', () => {
+ it('renders and empty state when there is no data', async () => {
const props = {
...mockedProps,
data: [],
};
const wrapper2 = factory(props);
+ await waitForComponentToPaint(wrapper2);
expect(wrapper2.find(Empty)).toExist();
});
@@ -461,7 +465,7 @@ describe('ListView', () => {
initialSort: [{ id: 'something' }],
});
- act(() => {
+ await act(async () => {
wrapper2.find('[data-test="card-sort-select"]').first().props().onChange({
desc: false,
id: 'something',
@@ -470,7 +474,6 @@ describe('ListView', () => {
});
});
- wrapper2.update();
expect(mockedProps.fetchData).toHaveBeenCalled();
});
});
diff --git a/superset-frontend/spec/javascripts/components/SupersetResourceSelect_spec.tsx b/superset-frontend/spec/javascripts/components/SupersetResourceSelect_spec.tsx
index 5fe3cd31b8a9f..60cd4a3dd3dcb 100644
--- a/superset-frontend/spec/javascripts/components/SupersetResourceSelect_spec.tsx
+++ b/superset-frontend/spec/javascripts/components/SupersetResourceSelect_spec.tsx
@@ -23,10 +23,13 @@ import { Provider } from 'react-redux';
import configureStore from 'redux-mock-store';
import SupersetResourceSelect from 'src/components/SupersetResourceSelect';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
+import fetchMock from 'fetch-mock';
describe('SupersetResourceSelect', () => {
const NOOP = () => {};
+ fetchMock.get('glob:*/api/v1/dataset/?q=*', {});
+
it('is a valid element', () => {
// @ts-ignore
expect(
diff --git a/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
index 2fb9804cf3f97..24f2f4e4e8d90 100644
--- a/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
+++ b/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
@@ -20,7 +20,7 @@ import { Provider } from 'react-redux';
import React from 'react';
import { shallow, mount } from 'enzyme';
import sinon from 'sinon';
-
+import fetchMock from 'fetch-mock';
import { ParentSize } from '@vx/responsive';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import { Sticky, StickyContainer } from 'react-sticky';
@@ -44,6 +44,8 @@ import WithDragDropContext from 'spec/helpers/WithDragDropContext';
const dashboardLayout = undoableDashboardLayout.present;
const layoutWithTabs = undoableDashboardLayoutWithTabs.present;
+fetchMock.get('glob:*/csstemplateasyncmodelview/api/read', {});
+
describe('DashboardBuilder', () => {
let favStarStub;
@@ -67,6 +69,7 @@ describe('DashboardBuilder', () => {
colorScheme: undefined,
handleComponentDrop() {},
setDirectPathToChild: sinon.spy(),
+ setMountedTab() {},
};
function setup(overrideProps, useProvider = false, store = mockStore) {
diff --git a/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
index 46cc6d88ab532..4fd1704b230ec 100644
--- a/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
+++ b/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
@@ -39,6 +39,8 @@ describe('DashboardGrid', () => {
handleComponentDrop() {},
resizeComponent() {},
width: 500,
+ isComponentVisible: true,
+ setDirectPathToChild() {},
};
function setup(overrideProps) {
diff --git a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
index fcffea0afa4fe..1b693c941b9e7 100644
--- a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
+++ b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
@@ -22,7 +22,7 @@ import { shallow } from 'enzyme';
import sinon from 'sinon';
import { LineEditableTabs } from 'src/common/components/Tabs';
import { Modal } from 'src/common/components';
-
+import fetchMock from 'fetch-mock';
import { styledMount as mount } from 'spec/helpers/theming';
import DashboardComponent from 'src/dashboard/containers/DashboardComponent';
import DeleteComponentButton from 'src/dashboard/components/DeleteComponentButton';
@@ -35,6 +35,8 @@ import { dashboardLayoutWithTabs } from 'spec/fixtures/mockDashboardLayout';
import { mockStoreWithTabs } from 'spec/fixtures/mockStore';
describe('Tabs', () => {
+ fetchMock.post('glob:*/r/shortner/', {});
+
const props = {
id: 'TABS_ID',
parentId: DASHBOARD_ROOT_ID,
diff --git a/superset-frontend/src/components/Menu/LanguagePicker.tsx b/superset-frontend/src/components/Menu/LanguagePicker.tsx
index c2af6cef3af62..f125c0aee62c4 100644
--- a/superset-frontend/src/components/Menu/LanguagePicker.tsx
+++ b/superset-frontend/src/components/Menu/LanguagePicker.tsx
@@ -43,6 +43,7 @@ export default function LanguagePicker({
setDropdownOpen(true)}
onMouseLeave={() => setDropdownOpen(false)}
+ onToggle={value => setDropdownOpen(value)}
open={dropdownOpen}
id="locale-dropdown"
title={