fix(sqllab): duplicate error message (#31353)
This commit is contained in:
parent
3bfead66c4
commit
fc45647440
|
|
@ -30,7 +30,6 @@ import fetchMock from 'fetch-mock';
|
|||
import ResultSet from 'src/SqlLab/components/ResultSet';
|
||||
import {
|
||||
cachedQuery,
|
||||
failedQueryWithErrorMessage,
|
||||
failedQueryWithErrors,
|
||||
queries,
|
||||
runningQuery,
|
||||
|
|
@ -41,6 +40,11 @@ import {
|
|||
failedQueryWithFrontendTimeoutErrors,
|
||||
} from 'src/SqlLab/fixtures';
|
||||
|
||||
jest.mock(
|
||||
'src/components/ErrorMessage/ErrorMessageWithStackTrace',
|
||||
() => () => <div data-test="error-message">Error</div>,
|
||||
);
|
||||
|
||||
const mockedProps = {
|
||||
cache: true,
|
||||
queryId: queries[0].id,
|
||||
|
|
@ -93,15 +97,6 @@ const cachedQueryState = {
|
|||
},
|
||||
},
|
||||
};
|
||||
const failedQueryWithErrorMessageState = {
|
||||
...initialState,
|
||||
sqlLab: {
|
||||
...initialState.sqlLab,
|
||||
queries: {
|
||||
[failedQueryWithErrorMessage.id]: failedQueryWithErrorMessage,
|
||||
},
|
||||
},
|
||||
};
|
||||
const failedQueryWithErrorsState = {
|
||||
...initialState,
|
||||
sqlLab: {
|
||||
|
|
@ -314,26 +309,17 @@ describe('ResultSet', () => {
|
|||
expect(getByText('fetching')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test('should render a failed query with an error message', async () => {
|
||||
await waitFor(() => {
|
||||
setup(
|
||||
{ ...mockedProps, queryId: failedQueryWithErrorMessage.id },
|
||||
mockStore(failedQueryWithErrorMessageState),
|
||||
);
|
||||
});
|
||||
|
||||
expect(screen.getByText('Database error')).toBeInTheDocument();
|
||||
expect(screen.getByText('Something went wrong')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test('should render a failed query with an errors object', async () => {
|
||||
const { errors } = failedQueryWithErrors;
|
||||
|
||||
await waitFor(() => {
|
||||
setup(
|
||||
{ ...mockedProps, queryId: failedQueryWithErrors.id },
|
||||
mockStore(failedQueryWithErrorsState),
|
||||
);
|
||||
});
|
||||
expect(screen.getByText('Database error')).toBeInTheDocument();
|
||||
const errorMessages = screen.getAllByTestId('error-message');
|
||||
expect(errorMessages).toHaveLength(errors.length);
|
||||
});
|
||||
|
||||
test('should render a timeout error with a retrial button', async () => {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ import {
|
|||
css,
|
||||
getNumberFormatter,
|
||||
getExtensionsRegistry,
|
||||
ErrorLevel,
|
||||
ErrorTypeEnum,
|
||||
} from '@superset-ui/core';
|
||||
import ErrorMessageWithStackTrace from 'src/components/ErrorMessage/ErrorMessageWithStackTrace';
|
||||
|
|
@ -559,16 +558,7 @@ const ResultSet = ({
|
|||
}
|
||||
|
||||
if (query.state === QueryState.Failed) {
|
||||
const errors = [];
|
||||
if (query.errorMessage) {
|
||||
errors.push({
|
||||
error_type: ErrorTypeEnum.GENERIC_DB_ENGINE_ERROR,
|
||||
extra: {},
|
||||
level: 'error' as ErrorLevel,
|
||||
message: query.errorMessage,
|
||||
});
|
||||
}
|
||||
errors.push(...(query.extra?.errors || []), ...(query.errors || []));
|
||||
const errors = [...(query.extra?.errors || []), ...(query.errors || [])];
|
||||
|
||||
return (
|
||||
<ResultlessStyles>
|
||||
|
|
|
|||
|
|
@ -532,6 +532,12 @@ export const failedQueryWithErrors = {
|
|||
level: 'error',
|
||||
extra: null,
|
||||
},
|
||||
{
|
||||
message: 'Something else wrong',
|
||||
error_type: 'TEST_ERROR',
|
||||
level: 'error',
|
||||
extra: null,
|
||||
},
|
||||
],
|
||||
id: 'ryhMUZCGb',
|
||||
progress: 0,
|
||||
|
|
|
|||
Loading…
Reference in New Issue