You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2023/10/04 18:18:55 UTC
[superset] 03/03: chore: Expand error detail on screencapture (#25519)
This is an automated email from the ASF dual-hosted git repository.
michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 220dc58fe07740a499cdb1d1c050dd53d06d2e8a
Author: JUST.in DO IT <ju...@airbnb.com>
AuthorDate: Wed Oct 4 11:06:22 2023 -0700
chore: Expand error detail on screencapture (#25519)
(cherry picked from commit ba541e802278bde10f77a543b66a9b4da3bc15cf)
---
.../components/ErrorMessage/ErrorAlert.test.tsx | 24 ++++++++++++++++++++++
.../src/components/ErrorMessage/ErrorAlert.tsx | 6 ++++--
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx
index 38006c2ec4..2c2f1c2349 100644
--- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx
+++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx
@@ -21,6 +21,7 @@ import React from 'react';
import userEvent from '@testing-library/user-event';
import { render, screen } from 'spec/helpers/testing-library';
import { supersetTheme } from '@superset-ui/core';
+import { isCurrentUserBot } from 'src/utils/isBot';
import ErrorAlert from './ErrorAlert';
import { ErrorLevel, ErrorSource } from './types';
@@ -31,6 +32,10 @@ jest.mock(
<span role="img" aria-label={fileName.replace('_', '-')} />,
);
+jest.mock('src/utils/isBot', () => ({
+ isCurrentUserBot: jest.fn(),
+}));
+
const mockedProps = {
body: 'Error body',
level: 'warning' as ErrorLevel,
@@ -41,6 +46,14 @@ const mockedProps = {
description: 'we are unable to connect db.',
};
+beforeEach(() => {
+ (isCurrentUserBot as jest.Mock).mockReturnValue(false);
+});
+
+afterEach(() => {
+ jest.clearAllMocks();
+});
+
test('should render', () => {
const { container } = render(<ErrorAlert {...mockedProps} />);
expect(container).toBeInTheDocument();
@@ -100,6 +113,17 @@ test('should render the See more button', () => {
expect(screen.getByText('See more')).toBeInTheDocument();
});
+test('should render the error subtitle and body defaultly for the screen capture request', () => {
+ const seemoreProps = {
+ ...mockedProps,
+ source: 'explore' as ErrorSource,
+ };
+ (isCurrentUserBot as jest.Mock).mockReturnValue(true);
+ render(<ErrorAlert {...seemoreProps} />);
+ expect(screen.getByText('Error subtitle')).toBeInTheDocument();
+ expect(screen.getByText('Error body')).toBeInTheDocument();
+});
+
test('should render the modal', () => {
render(<ErrorAlert {...mockedProps} />, { useRedux: true });
const button = screen.getByText('See more');
diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
index cf2522b4e4..d61abea597 100644
--- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
+++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
@@ -21,6 +21,7 @@ import { styled, useTheme, t } from '@superset-ui/core';
import { noOp } from 'src/utils/common';
import Modal from 'src/components/Modal';
import Button from 'src/components/Button';
+import { isCurrentUserBot } from 'src/utils/isBot';
import Icons from 'src/components/Icons';
import { ErrorLevel, ErrorSource } from './types';
@@ -102,9 +103,10 @@ export default function ErrorAlert({
const theme = useTheme();
const [isModalOpen, setIsModalOpen] = useState(false);
- const [isBodyExpanded, setIsBodyExpanded] = useState(false);
+ const [isBodyExpanded, setIsBodyExpanded] = useState(isCurrentUserBot());
- const isExpandable = ['explore', 'sqllab'].includes(source);
+ const isExpandable =
+ isCurrentUserBot() || ['explore', 'sqllab'].includes(source);
const iconColor = theme.colors[level].base;
return (