mirror of
https://github.com/apache/superset.git
synced 2024-09-20 04:29:47 -04:00
b5dd0f32cc
* first attempts at dynamic plugin loading
* dynamic import working for explore
* memoize appropriately
* add a backend for dynamic plugins
* hack at getting dynamic plugins working with dashboards
* more work on making it work, + feature flag
* lint
* actions to fix explore state when plugins load
* handle dynamic control panel, functionify ExploreViewContainer
* fix: rearrange migrations branch
* fix: name and key as strings with length 50
* bundle url length 2000
* bundle url to text
for some reason not supported on my sql
* fix: too long varchart
* fix: pre-commit typing
* fix: licenses
* fix: add slice container was not initing feature flags
* fix: undo linting issue
* fix: adjust down revision again
* fix: adjust down revision again
* isort
* pylint
* god damn linters
* remove unnecessary(?) loading message
* only log non-standard errors
* testing
* python is terrible
* see above commit message
* fix imports in DynamicPluginProvider
* fix
* shift migration forward
* lint
* fix form data calculations to handle missing control config
* temp commit - waiting for superset-ui changes and crud fixes
* remove unnecessary todo
* use new superset-ui shared module function
* fetch the plugins instead of hardcoding the test one
* migration sort
* remove duplicated import statement
* format
* try moving the import 🙄
* copy
* fix frontend tests
* safe access
* comment out dead code
* isort
* disable pylint on necessary lines
* use @superset-ui/logging instead of console
* remove temp code
* rearrange some code
* try triggering mouseover in cypress before click
* use loading spinner instead of text
* trying to fix cypress
* attempt cypress fix
* customize permissions
* update package lock
* only admins can write to plugins by default
* better copy
* disable flaky tests
* use makeApi
* flaky tests
* cleanup code
* flaaaakkkyyyyyy
* dry
Co-authored-by: amitNielsen <amit.miran@nielsen.com>
93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
import React from 'react';
|
|
import configureStore from 'redux-mock-store';
|
|
import thunk from 'redux-thunk';
|
|
import { shallow } from 'enzyme';
|
|
|
|
import getInitialState from 'src/explore/reducers/getInitialState';
|
|
import ExploreViewContainer from 'src/explore/components/ExploreViewContainer';
|
|
import QueryAndSaveBtns from 'src/explore/components/QueryAndSaveBtns';
|
|
import ConnectedControlPanelsContainer from 'src/explore/components/ControlPanelsContainer';
|
|
import ChartContainer from 'src/explore/components/ExploreChartPanel';
|
|
import * as featureFlags from 'src/featureFlags';
|
|
|
|
// I added .skip to this entire suite because none of these tests
|
|
// are actually testing particularly useful things,
|
|
// and too many hacks were needed to get enzyme to play well with context.
|
|
// Leaving it here in the hopes that someone can salvage this.
|
|
describe.skip('ExploreViewContainer', () => {
|
|
const middlewares = [thunk];
|
|
const mockStore = configureStore(middlewares);
|
|
let store;
|
|
let wrapper;
|
|
let isFeatureEnabledMock;
|
|
|
|
// jest.spyOn(ReactAll, 'useContext').mockImplementation(() => {
|
|
// return {
|
|
// store,
|
|
// subscription: new Subscription(store),
|
|
// };
|
|
// });
|
|
|
|
beforeAll(() => {
|
|
isFeatureEnabledMock = jest
|
|
.spyOn(featureFlags, 'isFeatureEnabled')
|
|
.mockReturnValue(false);
|
|
|
|
const bootstrapData = {
|
|
common: {
|
|
conf: {},
|
|
},
|
|
datasource: {
|
|
columns: [],
|
|
},
|
|
};
|
|
store = mockStore(getInitialState(bootstrapData), {});
|
|
});
|
|
|
|
afterAll(() => {
|
|
isFeatureEnabledMock.mockRestore();
|
|
});
|
|
|
|
beforeEach(() => {
|
|
wrapper = shallow(<ExploreViewContainer store={store} />, {
|
|
disableLifecycleMethods: true,
|
|
})
|
|
.dive()
|
|
.dive();
|
|
});
|
|
|
|
it('renders', () => {
|
|
expect(React.isValidElement(<ExploreViewContainer />)).toBe(true);
|
|
});
|
|
|
|
it('renders QueryAndSaveButtons', () => {
|
|
expect(wrapper.find(QueryAndSaveBtns)).toExist();
|
|
});
|
|
|
|
it('renders ControlPanelsContainer', () => {
|
|
expect(wrapper.find(ConnectedControlPanelsContainer)).toExist();
|
|
});
|
|
|
|
it('renders ChartContainer', () => {
|
|
expect(wrapper.find(ChartContainer)).toExist();
|
|
});
|
|
});
|