This is an automated email from the ASF dual-hosted git repository.
michaelsmolina pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 1ab36c9 chore: Moves spec files to the src folder - iteration 7
(#16943)
1ab36c9 is described below
commit 1ab36c94f308cd9d8b5b68ebd8e90a9902b2ac7c
Author: Michael S. Molina <[email protected]>
AuthorDate: Mon Oct 4 10:56:49 2021 -0300
chore: Moves spec files to the src folder - iteration 7 (#16943)
---
superset-frontend/.eslintrc.js | 1 +
superset-frontend/spec/fixtures/mockReportState.js | 2 +-
superset-frontend/spec/fixtures/mockState.js | 2 +-
.../components/gridComponents/ChartHolder_spec.jsx | 2 +-
.../components/gridComponents/Column_spec.jsx | 2 +-
.../components/gridComponents/Row_spec.jsx | 2 +-
.../components/gridComponents/Tab_spec.jsx | 2 +-
.../components/gridComponents/Tabs_spec.jsx | 2 +-
.../SqlLab/actions/sqlLab.test.js} | 0
.../index.tsx} | 2 +-
.../SqlLab/components/App/App.test.jsx} | 0
.../SqlLab/components/{App.jsx => App/index.jsx} | 6 +++---
.../ColumnElement/ColumnElement.test.tsx} | 3 +--
.../{ColumnElement.tsx => ColumnElement/index.tsx} | 0
.../index.jsx} | 7 +++----
.../index.jsx} | 3 +--
.../ExploreResultsButton.test.jsx} | 3 +--
.../index.jsx} | 3 +--
.../HighlightedSql/HighlightedSql.test.jsx} | 0
.../index.tsx} | 3 +--
.../QueryAutoRefresh/QueryAutoRefresh.test.jsx} | 3 +--
.../index.jsx} | 3 +--
.../{QueryHistory.tsx => QueryHistory/index.tsx} | 5 ++---
.../components/QuerySearch/QuerySearch.test.jsx} | 2 +-
.../{QuerySearch.tsx => QuerySearch/index.tsx} | 12 ++++++------
.../QueryStateLabel/QueryStateLabel.test.jsx} | 0
.../index.tsx} | 5 ++---
.../components/QueryTable/QueryTable.test.jsx} | 2 +-
.../components/ResultSet/ResultSet.test.jsx} | 2 +-
.../{ResultSet.tsx => ResultSet/index.tsx} | 22 +++++++++++-----------
.../index.tsx} | 0
.../SaveDatasetModal/SaveDatasetModal.test.tsx} | 0
.../index.tsx} | 0
.../components/SaveQuery/SaveQuery.test.jsx} | 0
.../{SaveQuery.tsx => SaveQuery/index.tsx} | 0
.../ScheduleQueryButton.less | 0
.../index.tsx} | 0
.../ShareSqlLabQuery/ShareSqlLabQuery.test.jsx} | 0
.../index.tsx} | 4 ++--
.../components/{ShowSQL.tsx => ShowSQL/index.tsx} | 5 ++---
.../components/SouthPane/SouthPane.test.jsx} | 2 +-
.../SouthPane/{SouthPane.tsx => index.tsx} | 0
.../src/SqlLab/components/SouthPane/state.ts | 4 ++--
.../components/SqlEditor/SqlEditor.test.jsx} | 2 +-
.../{SqlEditor.jsx => SqlEditor/index.jsx} | 18 +++++++++---------
.../SqlEditorLeftBar/SqlEditorLeftBar.test.jsx} | 2 +-
.../index.jsx} | 6 +++---
.../TabStatusIcon/TabStatusIcon.test.jsx} | 0
.../{TabStatusIcon.tsx => TabStatusIcon/index.tsx} | 3 +--
.../TabbedSqlEditors/TabbedSqlEditors.test.jsx} | 3 +--
.../index.jsx} | 7 +++----
.../components/TableElement/TableElement.test.jsx} | 3 +--
.../{TableElement.tsx => TableElement/index.tsx} | 12 ++++++------
.../TemplateParamsEditor.test.tsx} | 0
.../index.tsx} | 0
.../javascripts/sqllab => src/SqlLab}/fixtures.ts | 0
.../SqlLab/reducers/sqlLab.test.js} | 1 -
.../SqlLab/utils/emptyQueryResults.test.js} | 0
.../components/gridComponents/ChartHolder.test.tsx | 2 +-
59 files changed, 80 insertions(+), 95 deletions(-)
diff --git a/superset-frontend/.eslintrc.js b/superset-frontend/.eslintrc.js
index 5b79778..f6c9759 100644
--- a/superset-frontend/.eslintrc.js
+++ b/superset-frontend/.eslintrc.js
@@ -167,6 +167,7 @@ module.exports = {
'src/**/*.test.tsx',
'src/**/*.test.js',
'src/**/*.test.jsx',
+ 'src/**/fixtures.*',
],
plugins: ['jest', 'jest-dom', 'no-only-tests', 'testing-library'],
env: {
diff --git a/superset-frontend/spec/fixtures/mockReportState.js
b/superset-frontend/spec/fixtures/mockReportState.js
index 075af8b..d164fd67 100644
--- a/superset-frontend/spec/fixtures/mockReportState.js
+++ b/superset-frontend/spec/fixtures/mockReportState.js
@@ -16,8 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
+import { user } from 'src/SqlLab/fixtures';
import dashboardInfo from './mockDashboardInfo';
-import { user } from '../javascripts/sqllab/fixtures';
export default {
active: true,
diff --git a/superset-frontend/spec/fixtures/mockState.js
b/superset-frontend/spec/fixtures/mockState.js
index a31e2ab..2a3e289 100644
--- a/superset-frontend/spec/fixtures/mockState.js
+++ b/superset-frontend/spec/fixtures/mockState.js
@@ -22,13 +22,13 @@ import {
nativeFiltersInfo,
mockDataMaskInfo,
} from 'spec/javascripts/dashboard/fixtures/mockNativeFilters';
+import { user } from 'src/SqlLab/fixtures';
import chartQueries from './mockChartQueries';
import { dashboardLayout } from './mockDashboardLayout';
import dashboardInfo from './mockDashboardInfo';
import { emptyFilters } from './mockDashboardFilters';
import dashboardState from './mockDashboardState';
import { sliceEntitiesForChart } from './mockSliceEntities';
-import { user } from '../javascripts/sqllab/fixtures';
export default {
datasources,
diff --git
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
index 35b3cf3..269da2f 100644
---
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
+++
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
@@ -36,7 +36,7 @@ import { sliceId } from 'spec/fixtures/mockChartQueries';
import dashboardInfo from 'spec/fixtures/mockDashboardInfo';
import { dashboardLayout as mockLayout } from
'spec/fixtures/mockDashboardLayout';
import { sliceEntitiesForChart } from 'spec/fixtures/mockSliceEntities';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
import { nativeFiltersInfo } from '../../fixtures/mockNativeFilters';
describe('ChartHolder', () => {
diff --git
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
index 2e05c4c..a117d90 100644
---
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
+++
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
@@ -36,7 +36,7 @@ import WithPopoverMenu from
'src/dashboard/components/menu/WithPopoverMenu';
import { getMockStore } from 'spec/fixtures/mockStore';
import { dashboardLayout as mockLayout } from
'spec/fixtures/mockDashboardLayout';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
describe('Column', () => {
const columnWithoutChildren = {
diff --git
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
index c9bb21b..86cf613 100644
---
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
+++
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
@@ -36,7 +36,7 @@ import { supersetTheme, ThemeProvider } from
'@superset-ui/core';
import { getMockStore } from 'spec/fixtures/mockStore';
import { dashboardLayout as mockLayout } from
'spec/fixtures/mockDashboardLayout';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
describe('Row', () => {
const rowWithoutChildren = { ...mockLayout.present.ROW_ID, children: [] };
diff --git
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
index c0f15c3..b0470f8 100644
---
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
+++
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
@@ -32,7 +32,7 @@ import Tab, {
} from 'src/dashboard/components/gridComponents/Tab';
import { dashboardLayoutWithTabs } from 'spec/fixtures/mockDashboardLayout';
import { getMockStore } from 'spec/fixtures/mockStore';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
describe('Tabs', () => {
const props = {
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 0985fd6..79a2c9f 100644
---
a/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
+++
b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
@@ -37,7 +37,7 @@ import emptyDashboardLayout from
'src/dashboard/fixtures/emptyDashboardLayout';
import { dashboardLayoutWithTabs } from 'spec/fixtures/mockDashboardLayout';
import { getMockStore } from 'spec/fixtures/mockStore';
import { nativeFilters } from 'spec/fixtures/mockNativeFilters';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
describe('Tabs', () => {
fetchMock.post('glob:*/r/shortner/', {});
diff --git a/superset-frontend/spec/javascripts/sqllab/actions/sqlLab_spec.js
b/superset-frontend/src/SqlLab/actions/sqlLab.test.js
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/actions/sqlLab_spec.js
rename to superset-frontend/src/SqlLab/actions/sqlLab.test.js
diff --git a/superset-frontend/src/SqlLab/components/AceEditorWrapper.tsx
b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
similarity index 99%
rename from superset-frontend/src/SqlLab/components/AceEditorWrapper.tsx
rename to superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
index 825d30c..8f8e02d 100644
--- a/superset-frontend/src/SqlLab/components/AceEditorWrapper.tsx
+++ b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
@@ -30,7 +30,7 @@ import {
AceCompleterKeyword,
FullSQLEditor as AceEditor,
} from 'src/components/AsyncAceEditor';
-import { QueryEditor } from '../types';
+import { QueryEditor } from 'src/SqlLab/types';
type HotKey = {
key: string;
diff --git a/superset-frontend/spec/javascripts/sqllab/App_spec.jsx
b/superset-frontend/src/SqlLab/components/App/App.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/App_spec.jsx
rename to superset-frontend/src/SqlLab/components/App/App.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/App.jsx
b/superset-frontend/src/SqlLab/components/App/index.jsx
similarity index 96%
rename from superset-frontend/src/SqlLab/components/App.jsx
rename to superset-frontend/src/SqlLab/components/App/index.jsx
index 3521d7c..97871ba 100644
--- a/superset-frontend/src/SqlLab/components/App.jsx
+++ b/superset-frontend/src/SqlLab/components/App/index.jsx
@@ -30,9 +30,9 @@ import {
LOCALSTORAGE_WARNING_MESSAGE_THROTTLE_MS,
} from 'src/SqlLab/constants';
import * as Actions from 'src/SqlLab/actions/sqlLab';
-import TabbedSqlEditors from './TabbedSqlEditors';
-import QueryAutoRefresh from './QueryAutoRefresh';
-import QuerySearch from './QuerySearch';
+import TabbedSqlEditors from '../TabbedSqlEditors';
+import QueryAutoRefresh from '../QueryAutoRefresh';
+import QuerySearch from '../QuerySearch';
class App extends React.PureComponent {
constructor(props) {
diff --git a/superset-frontend/spec/javascripts/sqllab/ColumnElement_spec.tsx
b/superset-frontend/src/SqlLab/components/ColumnElement/ColumnElement.test.tsx
similarity index 97%
rename from superset-frontend/spec/javascripts/sqllab/ColumnElement_spec.tsx
rename to
superset-frontend/src/SqlLab/components/ColumnElement/ColumnElement.test.tsx
index 0462301..f97b0cc 100644
--- a/superset-frontend/spec/javascripts/sqllab/ColumnElement_spec.tsx
+++
b/superset-frontend/src/SqlLab/components/ColumnElement/ColumnElement.test.tsx
@@ -19,8 +19,7 @@
import React from 'react';
import { styledMount as mount } from 'spec/helpers/theming';
import ColumnElement from 'src/SqlLab/components/ColumnElement';
-
-import { mockedActions, table } from './fixtures';
+import { mockedActions, table } from 'src/SqlLab/fixtures';
describe('ColumnElement', () => {
const mockedProps = {
diff --git a/superset-frontend/src/SqlLab/components/ColumnElement.tsx
b/superset-frontend/src/SqlLab/components/ColumnElement/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/ColumnElement.tsx
rename to superset-frontend/src/SqlLab/components/ColumnElement/index.tsx
diff --git
a/superset-frontend/src/SqlLab/components/EstimateQueryCostButton.jsx
b/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.jsx
similarity index 94%
rename from superset-frontend/src/SqlLab/components/EstimateQueryCostButton.jsx
rename to
superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.jsx
index 8fa3bd0..f9e6f79 100644
--- a/superset-frontend/src/SqlLab/components/EstimateQueryCostButton.jsx
+++ b/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.jsx
@@ -20,12 +20,11 @@ import React, { useMemo } from 'react';
import PropTypes from 'prop-types';
import Alert from 'src/components/Alert';
import { t } from '@superset-ui/core';
-
import TableView from 'src/components/TableView';
import Button from 'src/components/Button';
-import Loading from '../../components/Loading';
-import ModalTrigger from '../../components/ModalTrigger';
-import { EmptyWrapperType } from '../../components/TableView/TableView';
+import Loading from 'src/components/Loading';
+import ModalTrigger from 'src/components/ModalTrigger';
+import { EmptyWrapperType } from 'src/components/TableView/TableView';
const propTypes = {
dbId: PropTypes.number.isRequired,
diff --git
a/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton.jsx
b/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx
similarity index 98%
rename from superset-frontend/src/SqlLab/components/ExploreCtasResultsButton.jsx
rename to
superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx
index 105f4eb..d6138f3 100644
--- a/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton.jsx
+++ b/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx
@@ -22,10 +22,9 @@ import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { t } from '@superset-ui/core';
import { InfoTooltipWithTrigger } from '@superset-ui/chart-controls';
-
import Button from 'src/components/Button';
import { exploreChart } from 'src/explore/exploreUtils';
-import * as actions from '../actions/sqlLab';
+import * as actions from 'src/SqlLab/actions/sqlLab';
const propTypes = {
actions: PropTypes.object.isRequired,
diff --git
a/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
b/superset-frontend/src/SqlLab/components/ExploreResultsButton/ExploreResultsButton.test.jsx
similarity index 98%
rename from
superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
rename to
superset-frontend/src/SqlLab/components/ExploreResultsButton/ExploreResultsButton.test.jsx
index 3251c83..b524235 100644
--- a/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
+++
b/superset-frontend/src/SqlLab/components/ExploreResultsButton/ExploreResultsButton.test.jsx
@@ -27,8 +27,7 @@ import sqlLabReducer from 'src/SqlLab/reducers/index';
import ExploreResultsButton from 'src/SqlLab/components/ExploreResultsButton';
import * as exploreUtils from 'src/explore/exploreUtils';
import Button from 'src/components/Button';
-
-import { queries, queryWithBadColumns } from './fixtures';
+import { queries, queryWithBadColumns } from 'src/SqlLab/fixtures';
describe('ExploreResultsButton', () => {
const middlewares = [thunk];
diff --git a/superset-frontend/src/SqlLab/components/ExploreResultsButton.jsx
b/superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx
similarity index 99%
rename from superset-frontend/src/SqlLab/components/ExploreResultsButton.jsx
rename to superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx
index 1c94c8b..260fe3a 100644
--- a/superset-frontend/src/SqlLab/components/ExploreResultsButton.jsx
+++ b/superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx
@@ -25,9 +25,8 @@ import Alert from 'src/components/Alert';
import { t } from '@superset-ui/core';
import { InfoTooltipWithTrigger } from '@superset-ui/chart-controls';
import shortid from 'shortid';
-
import Button from 'src/components/Button';
-import * as actions from '../actions/sqlLab';
+import * as actions from 'src/SqlLab/actions/sqlLab';
const propTypes = {
actions: PropTypes.object.isRequired,
diff --git a/superset-frontend/spec/javascripts/sqllab/HighlightedSql_spec.jsx
b/superset-frontend/src/SqlLab/components/HighlightedSql/HighlightedSql.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/HighlightedSql_spec.jsx
rename to
superset-frontend/src/SqlLab/components/HighlightedSql/HighlightedSql.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/HighlightedSql.tsx
b/superset-frontend/src/SqlLab/components/HighlightedSql/index.tsx
similarity index 98%
rename from superset-frontend/src/SqlLab/components/HighlightedSql.tsx
rename to superset-frontend/src/SqlLab/components/HighlightedSql/index.tsx
index e4f40d8..c646144 100644
--- a/superset-frontend/src/SqlLab/components/HighlightedSql.tsx
+++ b/superset-frontend/src/SqlLab/components/HighlightedSql/index.tsx
@@ -21,8 +21,7 @@ import SyntaxHighlighter from
'react-syntax-highlighter/dist/cjs/light';
import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql';
import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github';
import { t } from '@superset-ui/core';
-
-import ModalTrigger from '../../components/ModalTrigger';
+import ModalTrigger from 'src/components/ModalTrigger';
SyntaxHighlighter.registerLanguage('sql', sql);
diff --git
a/superset-frontend/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/QueryAutoRefresh.test.jsx
similarity index 96%
rename from superset-frontend/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
rename to
superset-frontend/src/SqlLab/components/QueryAutoRefresh/QueryAutoRefresh.test.jsx
index 1065b80..06bf187 100644
--- a/superset-frontend/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
+++
b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/QueryAutoRefresh.test.jsx
@@ -21,9 +21,8 @@ import { shallow } from 'enzyme';
import sinon from 'sinon';
import thunk from 'redux-thunk';
import configureStore from 'redux-mock-store';
-
import QueryAutoRefresh from 'src/SqlLab/components/QueryAutoRefresh';
-import { initialState, runningQuery } from './fixtures';
+import { initialState, runningQuery } from 'src/SqlLab/fixtures';
describe('QueryAutoRefresh', () => {
const middlewares = [thunk];
diff --git a/superset-frontend/src/SqlLab/components/QueryAutoRefresh.jsx
b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsx
similarity index 98%
rename from superset-frontend/src/SqlLab/components/QueryAutoRefresh.jsx
rename to superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsx
index 1ddfbf9..b54936b 100644
--- a/superset-frontend/src/SqlLab/components/QueryAutoRefresh.jsx
+++ b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsx
@@ -21,8 +21,7 @@ import PropTypes from 'prop-types';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { SupersetClient } from '@superset-ui/core';
-
-import * as Actions from '../actions/sqlLab';
+import * as Actions from 'src/SqlLab/actions/sqlLab';
const QUERY_UPDATE_FREQ = 2000;
const QUERY_UPDATE_BUFFER_MS = 5000;
diff --git a/superset-frontend/src/SqlLab/components/QueryHistory.tsx
b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
similarity index 93%
rename from superset-frontend/src/SqlLab/components/QueryHistory.tsx
rename to superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
index cfd80a1..16816c9 100644
--- a/superset-frontend/src/SqlLab/components/QueryHistory.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
@@ -19,9 +19,8 @@
import React from 'react';
import Alert from 'src/components/Alert';
import { t } from '@superset-ui/core';
-
-import QueryTable from './QueryTable';
-import { Query } from '../types';
+import { Query } from 'src/SqlLab/types';
+import QueryTable from 'src/SqlLab/components/QueryTable';
interface QueryHistoryProps {
queries: Query[];
diff --git a/superset-frontend/spec/javascripts/sqllab/QuerySearch_spec.jsx
b/superset-frontend/src/SqlLab/components/QuerySearch/QuerySearch.test.jsx
similarity index 99%
rename from superset-frontend/spec/javascripts/sqllab/QuerySearch_spec.jsx
rename to
superset-frontend/src/SqlLab/components/QuerySearch/QuerySearch.test.jsx
index b3a6091..a1efdc0 100644
--- a/superset-frontend/spec/javascripts/sqllab/QuerySearch_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/QuerySearch/QuerySearch.test.jsx
@@ -26,7 +26,7 @@ import { supersetTheme, ThemeProvider } from
'@superset-ui/core';
import { fireEvent, render, screen, act } from '@testing-library/react';
import '@testing-library/jest-dom/extend-expect';
import userEvent from '@testing-library/user-event';
-import { user } from './fixtures';
+import { user } from 'src/SqlLab/fixtures';
const mockStore = configureStore([thunk]);
const store = mockStore({
diff --git a/superset-frontend/src/SqlLab/components/QuerySearch.tsx
b/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
similarity index 96%
rename from superset-frontend/src/SqlLab/components/QuerySearch.tsx
rename to superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
index 978238b..a5d6246 100644
--- a/superset-frontend/src/SqlLab/components/QuerySearch.tsx
+++ b/superset-frontend/src/SqlLab/components/QuerySearch/index.tsx
@@ -21,17 +21,17 @@ import Button from 'src/components/Button';
import Select from 'src/components/Select';
import { styled, t, SupersetClient } from '@superset-ui/core';
import { debounce } from 'lodash';
-import Loading from '../../components/Loading';
-import QueryTable from './QueryTable';
+import Loading from 'src/components/Loading';
import {
now,
epochTimeXHoursAgo,
epochTimeXDaysAgo,
epochTimeXYearsAgo,
-} from '../../modules/dates';
-import { STATUS_OPTIONS, TIME_OPTIONS } from '../constants';
-import AsyncSelect from '../../components/AsyncSelect';
-import { Query } from '../types';
+} from 'src/modules/dates';
+import AsyncSelect from 'src/components/AsyncSelect';
+import { Query } from 'src/SqlLab/types';
+import { STATUS_OPTIONS, TIME_OPTIONS } from 'src/SqlLab/constants';
+import QueryTable from '../QueryTable';
interface QuerySearchProps {
actions: {
diff --git a/superset-frontend/spec/javascripts/sqllab/QueryStateLabel_spec.jsx
b/superset-frontend/src/SqlLab/components/QueryStateLabel/QueryStateLabel.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/QueryStateLabel_spec.jsx
rename to
superset-frontend/src/SqlLab/components/QueryStateLabel/QueryStateLabel.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/QueryStateLabel.tsx
b/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
similarity index 92%
rename from superset-frontend/src/SqlLab/components/QueryStateLabel.tsx
rename to superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
index c074c60..b270484 100644
--- a/superset-frontend/src/SqlLab/components/QueryStateLabel.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
@@ -18,9 +18,8 @@
*/
import React from 'react';
import Label from 'src/components/Label';
-
-import { STATE_TYPE_MAP } from '../constants';
-import { Query } from '../types';
+import { STATE_TYPE_MAP } from 'src/SqlLab/constants';
+import { Query } from 'src/SqlLab/types';
interface QueryStateLabelProps {
query: Query;
diff --git a/superset-frontend/spec/javascripts/sqllab/QueryTable_spec.jsx
b/superset-frontend/src/SqlLab/components/QueryTable/QueryTable.test.jsx
similarity index 97%
rename from superset-frontend/spec/javascripts/sqllab/QueryTable_spec.jsx
rename to superset-frontend/src/SqlLab/components/QueryTable/QueryTable.test.jsx
index fdce511..b0872f5 100644
--- a/superset-frontend/spec/javascripts/sqllab/QueryTable_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/QueryTable/QueryTable.test.jsx
@@ -24,7 +24,7 @@ import QueryTable from 'src/SqlLab/components/QueryTable';
import TableView from 'src/components/TableView';
import { TableCollection } from 'src/components/dataViewCommon';
import { Provider } from 'react-redux';
-import { queries, user } from './fixtures';
+import { queries, user } from 'src/SqlLab/fixtures';
describe('QueryTable', () => {
const mockedProps = {
diff --git a/superset-frontend/spec/javascripts/sqllab/ResultSet_spec.jsx
b/superset-frontend/src/SqlLab/components/ResultSet/ResultSet.test.jsx
similarity index 99%
rename from superset-frontend/spec/javascripts/sqllab/ResultSet_spec.jsx
rename to superset-frontend/src/SqlLab/components/ResultSet/ResultSet.test.jsx
index 2b37332..0752f1e 100644
--- a/superset-frontend/spec/javascripts/sqllab/ResultSet_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/ResultSet/ResultSet.test.jsx
@@ -41,7 +41,7 @@ import {
initialState,
user,
queryWithNoQueryLimit,
-} from './fixtures';
+} from 'src/SqlLab/fixtures';
const mockStore = configureStore([thunk]);
const store = mockStore(initialState);
diff --git a/superset-frontend/src/SqlLab/components/ResultSet.tsx
b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
similarity index 97%
rename from superset-frontend/src/SqlLab/components/ResultSet.tsx
rename to superset-frontend/src/SqlLab/components/ResultSet/index.tsx
index 87f08d9..ec65d6e 100644
--- a/superset-frontend/src/SqlLab/components/ResultSet.tsx
+++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
@@ -36,17 +36,17 @@ import { debounce } from 'lodash';
import ErrorMessageWithStackTrace from
'src/components/ErrorMessage/ErrorMessageWithStackTrace';
import { SaveDatasetModal } from 'src/SqlLab/components/SaveDatasetModal';
import { UserWithPermissionsAndRoles } from 'src/types/bootstrapTypes';
-import Loading from '../../components/Loading';
-import ExploreCtasResultsButton from './ExploreCtasResultsButton';
-import ExploreResultsButton from './ExploreResultsButton';
-import HighlightedSql from './HighlightedSql';
-import FilterableTable from '../../components/FilterableTable/FilterableTable';
-import QueryStateLabel from './QueryStateLabel';
-import CopyToClipboard from '../../components/CopyToClipboard';
-import { prepareCopyToClipboardTabularData } from '../../utils/common';
-import { exploreChart } from '../../explore/exploreUtils';
-import { CtasEnum } from '../actions/sqlLab';
-import { Query } from '../types';
+import Loading from 'src/components/Loading';
+import FilterableTable from 'src/components/FilterableTable/FilterableTable';
+import CopyToClipboard from 'src/components/CopyToClipboard';
+import { prepareCopyToClipboardTabularData } from 'src/utils/common';
+import { exploreChart } from 'src/explore/exploreUtils';
+import { CtasEnum } from 'src/SqlLab/actions/sqlLab';
+import { Query } from 'src/SqlLab/types';
+import ExploreCtasResultsButton from '../ExploreCtasResultsButton';
+import ExploreResultsButton from '../ExploreResultsButton';
+import HighlightedSql from '../HighlightedSql';
+import QueryStateLabel from '../QueryStateLabel';
enum DatasetRadioState {
SAVE_NEW = 1,
diff --git a/superset-frontend/src/SqlLab/components/RunQueryActionButton.tsx
b/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/RunQueryActionButton.tsx
rename to superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx
diff --git
a/superset-frontend/spec/javascripts/sqllab/SaveDatasetModal_spec.tsx
b/superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/SaveDatasetModal_spec.tsx
rename to
superset-frontend/src/SqlLab/components/SaveDatasetModal/SaveDatasetModal.test.tsx
diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal.tsx
b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/SaveDatasetModal.tsx
rename to superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
diff --git a/superset-frontend/spec/javascripts/sqllab/SaveQuery_spec.jsx
b/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/SaveQuery_spec.jsx
rename to superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/SaveQuery.tsx
b/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/SaveQuery.tsx
rename to superset-frontend/src/SqlLab/components/SaveQuery/index.tsx
diff --git a/superset-frontend/src/SqlLab/components/ScheduleQueryButton.less
b/superset-frontend/src/SqlLab/components/ScheduleQueryButton/ScheduleQueryButton.less
similarity index 100%
rename from superset-frontend/src/SqlLab/components/ScheduleQueryButton.less
rename to
superset-frontend/src/SqlLab/components/ScheduleQueryButton/ScheduleQueryButton.less
diff --git a/superset-frontend/src/SqlLab/components/ScheduleQueryButton.tsx
b/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/ScheduleQueryButton.tsx
rename to superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx
diff --git
a/superset-frontend/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx
b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx
rename to
superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery.tsx
b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
similarity index 96%
rename from superset-frontend/src/SqlLab/components/ShareSqlLabQuery.tsx
rename to superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
index db49fcc..5f473c6 100644
--- a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery.tsx
+++ b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
@@ -24,8 +24,8 @@ import withToasts from
'src/components/MessageToasts/withToasts';
import CopyToClipboard from 'src/components/CopyToClipboard';
import { storeQuery } from 'src/utils/common';
import { getClientErrorObject } from 'src/utils/getClientErrorObject';
-import { FeatureFlag, isFeatureEnabled } from '../../featureFlags';
-import { QueryEditor } from '../types';
+import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags';
+import { QueryEditor } from 'src/SqlLab/types';
interface ShareSqlLabQueryPropTypes {
queryEditor: QueryEditor;
diff --git a/superset-frontend/src/SqlLab/components/ShowSQL.tsx
b/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx
similarity index 93%
rename from superset-frontend/src/SqlLab/components/ShowSQL.tsx
rename to superset-frontend/src/SqlLab/components/ShowSQL/index.tsx
index a837240..ce066af 100644
--- a/superset-frontend/src/SqlLab/components/ShowSQL.tsx
+++ b/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx
@@ -20,9 +20,8 @@ import React from 'react';
import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light';
import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql';
import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github';
-
-import { IconTooltip } from '../../components/IconTooltip';
-import ModalTrigger from '../../components/ModalTrigger';
+import { IconTooltip } from 'src/components/IconTooltip';
+import ModalTrigger from 'src/components/ModalTrigger';
SyntaxHighlighter.registerLanguage('sql', sql);
diff --git a/superset-frontend/spec/javascripts/sqllab/SouthPane_spec.jsx
b/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.jsx
similarity index 98%
rename from superset-frontend/spec/javascripts/sqllab/SouthPane_spec.jsx
rename to superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.jsx
index dbc7379..dbf81cf 100644
--- a/superset-frontend/spec/javascripts/sqllab/SouthPane_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.jsx
@@ -24,7 +24,7 @@ import SouthPaneContainer from
'src/SqlLab/components/SouthPane/state';
import ResultSet from 'src/SqlLab/components/ResultSet';
import '@testing-library/jest-dom/extend-expect';
import { STATUS_OPTIONS } from 'src/SqlLab/constants';
-import { initialState } from './fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
const mockedProps = {
editorQueries: [
diff --git a/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.tsx
b/superset-frontend/src/SqlLab/components/SouthPane/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/SouthPane/SouthPane.tsx
rename to superset-frontend/src/SqlLab/components/SouthPane/index.tsx
diff --git a/superset-frontend/src/SqlLab/components/SouthPane/state.ts
b/superset-frontend/src/SqlLab/components/SouthPane/state.ts
index 57ebc56..9963739 100644
--- a/superset-frontend/src/SqlLab/components/SouthPane/state.ts
+++ b/superset-frontend/src/SqlLab/components/SouthPane/state.ts
@@ -18,8 +18,8 @@
*/
import { connect } from 'react-redux';
import { bindActionCreators, Dispatch } from 'redux';
-import * as Actions from '../../actions/sqlLab';
-import SouthPane from './SouthPane';
+import * as Actions from 'src/SqlLab/actions/sqlLab';
+import SouthPane from '.';
function mapStateToProps({ sqlLab }: Record<string, any>) {
return {
diff --git a/superset-frontend/spec/javascripts/sqllab/SqlEditor_spec.jsx
b/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx
similarity index 98%
rename from superset-frontend/spec/javascripts/sqllab/SqlEditor_spec.jsx
rename to superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx
index d9adfde..986862e 100644
--- a/superset-frontend/spec/javascripts/sqllab/SqlEditor_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx
@@ -39,7 +39,7 @@ import {
queryEditorSetSchemaOptions,
} from 'src/SqlLab/actions/sqlLab';
import waitForComponentToPaint from 'spec/helpers/waitForComponentToPaint';
-import { initialState, queries, table } from './fixtures';
+import { initialState, queries, table } from 'src/SqlLab/fixtures';
const MOCKED_SQL_EDITOR_HEIGHT = 500;
diff --git a/superset-frontend/src/SqlLab/components/SqlEditor.jsx
b/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx
similarity index 97%
rename from superset-frontend/src/SqlLab/components/SqlEditor.jsx
rename to superset-frontend/src/SqlLab/components/SqlEditor/index.jsx
index 540cfb7..bd96acb 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditor.jsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx
@@ -64,15 +64,15 @@ import {
SQL_TOOLBAR_HEIGHT,
} from 'src/SqlLab/constants';
import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags';
-import TemplateParamsEditor from './TemplateParamsEditor';
-import ConnectedSouthPane from './SouthPane/state';
-import SaveQuery from './SaveQuery';
-import ScheduleQueryButton from './ScheduleQueryButton';
-import EstimateQueryCostButton from './EstimateQueryCostButton';
-import ShareSqlLabQuery from './ShareSqlLabQuery';
-import SqlEditorLeftBar from './SqlEditorLeftBar';
-import AceEditorWrapper from './AceEditorWrapper';
-import RunQueryActionButton from './RunQueryActionButton';
+import TemplateParamsEditor from '../TemplateParamsEditor';
+import ConnectedSouthPane from '../SouthPane/state';
+import SaveQuery from '../SaveQuery';
+import ScheduleQueryButton from '../ScheduleQueryButton';
+import EstimateQueryCostButton from '../EstimateQueryCostButton';
+import ShareSqlLabQuery from '../ShareSqlLabQuery';
+import SqlEditorLeftBar from '../SqlEditorLeftBar';
+import AceEditorWrapper from '../AceEditorWrapper';
+import RunQueryActionButton from '../RunQueryActionButton';
const LIMIT_DROPDOWN = [10, 100, 1000, 10000, 100000];
const SQL_EDITOR_PADDING = 10;
diff --git
a/superset-frontend/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/SqlEditorLeftBar.test.jsx
similarity index 99%
rename from superset-frontend/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
rename to
superset-frontend/src/SqlLab/components/SqlEditorLeftBar/SqlEditorLeftBar.test.jsx
index b99d6cd..5e1e368 100644
--- a/superset-frontend/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
+++
b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/SqlEditorLeftBar.test.jsx
@@ -34,7 +34,7 @@ import {
databases,
defaultQueryEditor,
mockedActions,
-} from './fixtures';
+} from 'src/SqlLab/fixtures';
const mockedProps = {
actions: mockedActions,
diff --git a/superset-frontend/src/SqlLab/components/SqlEditorLeftBar.jsx
b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx
similarity index 97%
rename from superset-frontend/src/SqlLab/components/SqlEditorLeftBar.jsx
rename to superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx
index 02a383b..38d5f8c 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditorLeftBar.jsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx
@@ -22,9 +22,9 @@ import Button from 'src/components/Button';
import { t, styled, css } from '@superset-ui/core';
import Collapse from 'src/components/Collapse';
import Icons from 'src/components/Icons';
-import TableElement from './TableElement';
-import TableSelector from '../../components/TableSelector';
-import { IconTooltip } from '../../components/IconTooltip';
+import TableSelector from 'src/components/TableSelector';
+import { IconTooltip } from 'src/components/IconTooltip';
+import TableElement from '../TableElement';
const propTypes = {
queryEditor: PropTypes.object.isRequired,
diff --git a/superset-frontend/spec/javascripts/sqllab/TabStatusIcon_spec.jsx
b/superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.jsx
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/TabStatusIcon_spec.jsx
rename to
superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.jsx
diff --git a/superset-frontend/src/SqlLab/components/TabStatusIcon.tsx
b/superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx
similarity index 95%
rename from superset-frontend/src/SqlLab/components/TabStatusIcon.tsx
rename to superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx
index cf21cdb..070e749 100644
--- a/superset-frontend/src/SqlLab/components/TabStatusIcon.tsx
+++ b/superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx
@@ -17,8 +17,7 @@
* under the License.
*/
import React from 'react';
-
-import { QueryState } from '../types';
+import { QueryState } from 'src/SqlLab/types';
interface TabStatusIconProps {
tabState: QueryState;
diff --git
a/superset-frontend/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/TabbedSqlEditors.test.jsx
similarity index 99%
rename from superset-frontend/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
rename to
superset-frontend/src/SqlLab/components/TabbedSqlEditors/TabbedSqlEditors.test.jsx
index da4cde5..7acef14 100644
--- a/superset-frontend/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
+++
b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/TabbedSqlEditors.test.jsx
@@ -29,8 +29,7 @@ import { supersetTheme, ThemeProvider } from
'@superset-ui/core';
import { EditableTabs } from 'src/components/Tabs';
import TabbedSqlEditors from 'src/SqlLab/components/TabbedSqlEditors';
import SqlEditor from 'src/SqlLab/components/SqlEditor';
-
-import { table, initialState } from './fixtures';
+import { table, initialState } from 'src/SqlLab/fixtures';
fetchMock.get('glob:*/api/v1/database/*', {});
fetchMock.get('glob:*/savedqueryviewapi/api/get/*', {});
diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
similarity index 99%
rename from superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
rename to superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
index 58115cc..b39c187 100644
--- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
+++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
@@ -26,13 +26,12 @@ import { bindActionCreators } from 'redux';
import URI from 'urijs';
import { styled, t } from '@superset-ui/core';
import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags';
-
import { areArraysShallowEqual } from 'src/reduxUtils';
import { Tooltip } from 'src/components/Tooltip';
import { detectOS } from 'src/utils/common';
-import * as Actions from '../actions/sqlLab';
-import SqlEditor from './SqlEditor';
-import TabStatusIcon from './TabStatusIcon';
+import * as Actions from 'src/SqlLab/actions/sqlLab';
+import SqlEditor from '../SqlEditor';
+import TabStatusIcon from '../TabStatusIcon';
const propTypes = {
actions: PropTypes.object.isRequired,
diff --git a/superset-frontend/spec/javascripts/sqllab/TableElement_spec.jsx
b/superset-frontend/src/SqlLab/components/TableElement/TableElement.test.jsx
similarity index 98%
rename from superset-frontend/spec/javascripts/sqllab/TableElement_spec.jsx
rename to
superset-frontend/src/SqlLab/components/TableElement/TableElement.test.jsx
index c10e120..91bddc5 100644
--- a/superset-frontend/spec/javascripts/sqllab/TableElement_spec.jsx
+++ b/superset-frontend/src/SqlLab/components/TableElement/TableElement.test.jsx
@@ -22,12 +22,11 @@ import { Provider } from 'react-redux';
import configureStore from 'redux-mock-store';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import Collapse from 'src/components/Collapse';
-
import { IconTooltip } from 'src/components/IconTooltip';
import TableElement from 'src/SqlLab/components/TableElement';
import ColumnElement from 'src/SqlLab/components/ColumnElement';
import waitForComponentToPaint from 'spec/helpers/waitForComponentToPaint';
-import { mockedActions, table } from './fixtures';
+import { mockedActions, table } from 'src/SqlLab/fixtures';
describe('TableElement', () => {
const mockStore = configureStore([]);
diff --git a/superset-frontend/src/SqlLab/components/TableElement.tsx
b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
similarity index 95%
rename from superset-frontend/src/SqlLab/components/TableElement.tsx
rename to superset-frontend/src/SqlLab/components/TableElement/index.tsx
index d64ce21..4be3935 100644
--- a/superset-frontend/src/SqlLab/components/TableElement.tsx
+++ b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
@@ -24,12 +24,12 @@ import { t, styled } from '@superset-ui/core';
import { debounce } from 'lodash';
import { Tooltip } from 'src/components/Tooltip';
-import CopyToClipboard from '../../components/CopyToClipboard';
-import { IconTooltip } from '../../components/IconTooltip';
-import ColumnElement, { ColumnKeyTypeType } from './ColumnElement';
-import ShowSQL from './ShowSQL';
-import ModalTrigger from '../../components/ModalTrigger';
-import Loading from '../../components/Loading';
+import CopyToClipboard from 'src/components/CopyToClipboard';
+import { IconTooltip } from 'src/components/IconTooltip';
+import ModalTrigger from 'src/components/ModalTrigger';
+import Loading from 'src/components/Loading';
+import ColumnElement, { ColumnKeyTypeType } from '../ColumnElement';
+import ShowSQL from '../ShowSQL';
interface Column {
name: string;
diff --git
a/superset-frontend/spec/javascripts/sqllab/TemplateParamsEditor_spec.tsx
b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/TemplateParamsEditor.test.tsx
similarity index 100%
rename from
superset-frontend/spec/javascripts/sqllab/TemplateParamsEditor_spec.tsx
rename to
superset-frontend/src/SqlLab/components/TemplateParamsEditor/TemplateParamsEditor.test.tsx
diff --git a/superset-frontend/src/SqlLab/components/TemplateParamsEditor.tsx
b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
similarity index 100%
rename from superset-frontend/src/SqlLab/components/TemplateParamsEditor.tsx
rename to superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
diff --git a/superset-frontend/spec/javascripts/sqllab/fixtures.ts
b/superset-frontend/src/SqlLab/fixtures.ts
similarity index 100%
rename from superset-frontend/spec/javascripts/sqllab/fixtures.ts
rename to superset-frontend/src/SqlLab/fixtures.ts
diff --git a/superset-frontend/spec/javascripts/sqllab/reducers/sqlLab_spec.js
b/superset-frontend/src/SqlLab/reducers/sqlLab.test.js
similarity index 99%
rename from superset-frontend/spec/javascripts/sqllab/reducers/sqlLab_spec.js
rename to superset-frontend/src/SqlLab/reducers/sqlLab.test.js
index d10542e..cac9376 100644
--- a/superset-frontend/spec/javascripts/sqllab/reducers/sqlLab_spec.js
+++ b/superset-frontend/src/SqlLab/reducers/sqlLab.test.js
@@ -19,7 +19,6 @@
import sqlLabReducer from 'src/SqlLab/reducers/sqlLab';
import * as actions from 'src/SqlLab/actions/sqlLab';
import { now } from 'src/modules/dates';
-
import { table, initialState as mockState } from '../fixtures';
const initialState = mockState.sqlLab;
diff --git
a/superset-frontend/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js
b/superset-frontend/src/SqlLab/utils/emptyQueryResults.test.js
similarity index 100%
rename from
superset-frontend/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js
rename to superset-frontend/src/SqlLab/utils/emptyQueryResults.test.js
diff --git
a/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.test.tsx
b/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.test.tsx
index 6f24f06..cf240d9 100644
---
a/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.test.tsx
+++
b/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.test.tsx
@@ -23,7 +23,7 @@ import { sliceId as chartId } from
'spec/fixtures/mockChartQueries';
import { nativeFiltersInfo } from
'spec/javascripts/dashboard/fixtures/mockNativeFilters';
import newComponentFactory from 'src/dashboard/util/newComponentFactory';
import { getMockStore } from 'spec/fixtures/mockStore';
-import { initialState } from 'spec/javascripts/sqllab/fixtures';
+import { initialState } from 'src/SqlLab/fixtures';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { Provider } from 'react-redux';