fix(sqllab): Revert "rendering performance regression (#23653)" (#23671)

This commit is contained in:
JUST.in DO IT 2023-04-13 04:23:12 -07:00 committed by GitHub
parent b35b5a6e05
commit 40bf1a550b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 33 deletions

View File

@ -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 }) => (
<textarea
data-test="react-ace"
onChange={evt => onChange(evt.target.value)}
onBlur={onBlur}
>
{value}
</textarea>
FullSQLEditor: props => (
<div data-test="react-ace">{JSON.stringify(props)}</div>
),
}));
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,

View File

@ -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()) {