diff --git a/superset-frontend/src/explore/components/ExploreChartPanel/index.jsx b/superset-frontend/src/explore/components/ExploreChartPanel/index.jsx index 893a10275a25d..0dee4d076e7ea 100644 --- a/superset-frontend/src/explore/components/ExploreChartPanel/index.jsx +++ b/superset-frontend/src/explore/components/ExploreChartPanel/index.jsx @@ -418,7 +418,11 @@ const ExploreChartPanel = ({ if (!bodyClasses.includes(standaloneClass)) { document.body.className += ` ${standaloneClass}`; } - return standaloneChartBody; + return ( +
+ {standaloneChartBody} +
+ ); } return ( diff --git a/superset-frontend/src/explore/components/ExploreViewContainer/ExploreViewContainer.test.tsx b/superset-frontend/src/explore/components/ExploreViewContainer/ExploreViewContainer.test.tsx index fbfb0c3b1de77..1681fdce0d677 100644 --- a/superset-frontend/src/explore/components/ExploreViewContainer/ExploreViewContainer.test.tsx +++ b/superset-frontend/src/explore/components/ExploreViewContainer/ExploreViewContainer.test.tsx @@ -97,14 +97,19 @@ fetchMock.get('glob:*/api/v1/explore/form_data*', {}); fetchMock.get('glob:*/api/v1/chart/favorite_status*', { result: [{ value: true }], }); +fetchMock.get('glob:*/api/v1/chart/*', { + result: {}, +}); const defaultPath = '/explore/'; const renderWithRouter = ({ search = '', overridePathname, + initialState = reduxState, }: { search?: string; overridePathname?: string; + initialState?: object; } = {}) => { const path = overridePathname ?? defaultPath; Object.defineProperty(window, 'location', { @@ -118,7 +123,7 @@ const renderWithRouter = ({ , - { useRedux: true, initialState: reduxState }, + { useRedux: true, initialState }, ); }; @@ -146,6 +151,16 @@ test('generates a new form_data param when none is available', async () => { replaceState.mockRestore(); }); +test('renders chart in standalone mode', () => { + const { queryByTestId } = renderWithRouter({ + initialState: { + ...reduxState, + explore: { ...reduxState.explore, standalone: true }, + }, + }); + expect(queryByTestId('standalone-app')).toBeTruthy(); +}); + test('generates a different form_data param when one is provided and is mounting', async () => { const replaceState = jest.spyOn(window.history, 'replaceState'); await waitFor(() => renderWithRouter({ search: SEARCH }));