diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx b/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx index 67f25d4d396c1..9dcc37fdd188a 100644 --- a/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx +++ b/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx @@ -25,7 +25,6 @@ import thunk from 'redux-thunk'; import configureStore from 'redux-mock-store'; import fetchMock from 'fetch-mock'; import { - SET_QUERY_EDITOR_SQL_DEBOUNCE_MS, SQL_EDITOR_GUTTER_HEIGHT, SQL_EDITOR_GUTTER_MARGIN, SQL_TOOLBAR_HEIGHT, @@ -44,14 +43,8 @@ import { jest.mock('src/components/AsyncAceEditor', () => ({ ...jest.requireActual('src/components/AsyncAceEditor'), - FullSQLEditor: ({ onChange, onBlur, value }) => ( - + FullSQLEditor: props => ( +
{JSON.stringify(props)}
), })); jest.mock('src/SqlLab/components/SqlEditorLeftBar', () => () => ( @@ -173,8 +166,10 @@ describe('SqlEditor', () => { }, }), ); - const editor = await findByTestId('react-ace'); - expect(editor).toHaveValue(expectedSql); + + expect(await findByTestId('react-ace')).toHaveTextContent( + JSON.stringify({ value: expectedSql }).slice(1, -1), + ); }); it('render a SouthPane', async () => { @@ -184,28 +179,6 @@ describe('SqlEditor', () => { ).toBeInTheDocument(); }); - it('triggers setQueryEditorAndSaveSql with debounced call to avoid performance regression', async () => { - const { findByTestId } = setup(mockedProps, store); - const editor = await findByTestId('react-ace'); - const sql = 'select *'; - fireEvent.change(editor, { target: { value: sql } }); - // Verify no immediate sql update triggered - expect( - store.getActions().filter(({ type }) => type === 'QUERY_EDITOR_SET_SQL'), - ).toHaveLength(0); - await waitFor( - () => - expect( - store - .getActions() - .filter(({ type }) => type === 'QUERY_EDITOR_SET_SQL'), - ).toHaveLength(1), - { - timeout: SET_QUERY_EDITOR_SQL_DEBOUNCE_MS + 100, - }, - ); - }); - it('runs query action with ctas false', async () => { const expectedStore = mockStore({ ...initialState, diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx b/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx index 95ad430e38cef..2a93cad2706e9 100644 --- a/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx +++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx @@ -49,6 +49,7 @@ import { persistEditorHeight, postStopQuery, queryEditorSetAutorun, + queryEditorSetSql, queryEditorSetAndSaveSql, queryEditorSetTemplateParams, runQueryFromSqlEditor, @@ -455,6 +456,7 @@ const SqlEditor = ({ ); const onSqlChanged = sql => { + dispatch(queryEditorSetSql(queryEditor, sql)); setQueryEditorAndSaveSqlWithDebounce(sql); // Request server-side validation of the query text if (canValidateQuery()) {